gpt4 book ai didi

amazon-web-services - 通过云形成创建并执行 aws lambda 函数

转载 作者:行者123 更新时间:2023-12-03 07:25:48 27 4
gpt4 key购买 nike

我正在创建我的 lambda 函数,就像遵循云形成模板一样。我的问题是,创建此 lambda 资源后,我想将几​​个变量作为输入传递给它并立即执行它。有没有办法通过云形成模板来做到这一点?


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]

最佳答案

我按照该方法创建了一个自定义资源来执行 lambda 函数。我也通过 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

但是,这会导致更多的复杂性。由于自定义资源的云形成在触发 lambda 函数后不会收到通知。所以它仍然处于“创建资源”状态。为了处理这个问题,我必须在 lambda Python 代码中创建一个返回成功/失败的新函数。正如这里提到的:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html

关于amazon-web-services - 通过云形成创建并执行 aws lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43076786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com