use*_*799 5 amazon-cloudformation amazon-elasticache amazon-lambda
我正在尝试编写一个 CloudFormation 模板,该模板将 Lambda 函数订阅到 CloudWatch Logs LogGroup。然后,此 Lambda 函数应解析日志并将它们放入 Amazon ES 集群。
订阅等都运行良好,但我无法理解的一点是如何将 Amazon ES 集群端点传递给 Lambda 函数。当您浏览控制台时,AWS 提供的模板包括一行:
var endpoint = 'my-aws-es-endpoint.amazonaws.com';
Run Code Online (Sandbox Code Playgroud)
每次运行 CloudFormation 模板时,我显然都需要更新它,因为每次我都会得到一个具有不同端点的不同集群。我不想手动更新它,但希望能够使用像“Fn::GetAtt”这样的 CloudFormation 函数来获取终点并将其传递给 Lambda。我就是不知道怎么做。
您可以将 ES 集群端点作为环境变量传递给 Lambda 函数。以下是此类功能的 CloudFormation 模板片段:
"mylambda": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "index.handler",
"Role": { "Fn::GetAtt" : ["LambdaExecutionRole", "Arn"] },
"Code": {
"S3Bucket": "my-lambda-functions-bucket",
"S3Key": "mylambda.zip"
},
"Runtime": "nodejs4.3",
"Timeout": "25",
"Environment": {
"Variables": {
"ESENDPOINT": { "Fn::GetAtt": ["ESDOMAINRESOURCE", "DomainEndpoint"] }
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8573 次 |
| 最近记录: |