[英]AWS CloudFormation for Lambda and SNS Topic
我有一個用於形成Lambda和SNS主題的雲形成腳本。
這是用於SNS主題和Lambda創建的yml腳本,
SampleSNSTopic:
Type: AWS::SNS::Topic
Properties:
DisplayName: sampleTopic
TopicName: sampleTopic
SampleLambdaFunction:
Type: AWS::Lambda::Function
DependsOn: SampleSNSTopic
Properties:
Handler: index.handler
Description: Sample Lambda function
FunctionName: TestFunction
Role: !Ref SomeRole
Code:
ZipFile: !Sub |
var AWS = require("aws-sdk");
exports.handler = function(event, context) {
var eventText = JSON.stringify(event, null, 2);
var sns = new AWS.SNS();
var params = {
Message: eventText,
TopicArn: !Ref SampleSNSTopic
};
sns.publish(params, context.done);
};
Runtime: nodejs6.10
Timeout: 300
MemorySize: 512
問題:對主題ARN使用!Ref失敗,
TopicArn: !Ref SampleSNSTopic
這是正確的方法嗎? 還是有其他方法可以使用SNS主題的ARN在雲形成中創建lambda?
這類似於此問題的答案:
本質上,您將Ref值分配給Environment鍵/值:
Properties:
Handler: index.handler
Description: Sample Lambda function
FunctionName: TestFunction
Environment:
Variables:
SNS_TOPIC_ARN: !Ref SampleSNSTopic
然后,您可以在Lambda中訪問它:
Code:
ZipFile: !Sub |
var AWS = require("aws-sdk");
exports.handler = function(event, context) {
var eventText = JSON.stringify(event, null, 2);
var sns = new AWS.SNS();
var params = {
Message: eventText,
TopicArn: process.env.SNS_TOPIC_ARN
};
sns.publish(params, context.done);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.