1

私はラムダ関数をクラウド形成テンプレートを使って次のように作成しています。 私の質問は、このラムダリソースを作成した後、入力としていくつかの変数を渡してすぐに実行することです。私は雲の形成テンプレートを通してそれを行うことができる方法はありますか?awsラムダ関数を作成して雲の形で実行する


AWSTemplateFormatVersion: '2010-09-09' 
Description: Create a lambda function for chef rds read replica 
Parameters: 
    Environment: 
    Description: Environment that will be built 
    Type: String 
    Default: q1 
    AllowedValues: 
    - q1 
Mappings: 
    ChefEnvironmentMap: 
    q1: 
     IAMRole: CHEFAWS-RDS 
     Subnets: 
     - subnet-*** 
     SecurityGroups: 
     - sg-*** 
     NetCoreEnvironment: qa 
Resources: 
    ChefRDSReadOnlyReplica: 
    Type: AWS::Lambda::Function 
    Properties: 
     Code: 
     S3Bucket: cheftestbucket 
     S3Key: lambda/cheflambda.zip 
     Description: "Chef rds" 
     Environment: 
     Variables: 
      http_proxy: 'http://**' 
      https_proxy: 'http://**' 
      no_proxy: '169.254.169.254,127.0.0.1,localaddress,.localdomain.com' 
     Handler: createreadreplica.lambda_handler 
     MemorySize: 128 
     Role: arn:aws:iam::*****:role/CHEFAWS-RDS 
     Runtime: python2.7 
     Timeout: 60 
     VpcConfig: 
     SecurityGroupIds: !FindInMap [ChefEnvironmentMap, !Ref Environment, SecurityGroups] 
     SubnetIds: !FindInMap [ChefEnvironmentMap, !Ref Environment, Subnets] 

答えて

1

私はラムダのfuctionを実行するためのカスタムリソースを作成するためのアプローチを行いました。私はcftを通してカスタムリソースを立ち上げました。

Lambdaresource: 
    DependsOn: ChefRDSReadOnlyReplica 
    Properties: 
     sourceregion: "us-east-1" 
     target_region: "us-west-2" 
     db_instance_id: "chef-tod-pg-rds" 
     dbsubnet_groupname: "******" 
     kms_keyid: "******" 
     ServiceToken: !GetAtt ChefRDSReadOnlyReplica.Arn 
    Type: AWS::CloudFormation::CustomResource 

ただし、これにより複雑さが増します。カスタムリソースのクラウド形成は、ラムダ機能をトリガーした後に通知されません。したがって、それは "リソースの作成"状態にとどまります。これを処理するために、成功/失敗を返したラムダPythonコードで新しい関数を作成しなければなりませんでした。ここに記載されているとおり:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html

関連する問題