eda*_*leh 2 amazon-sns aws-lambda aws-cdk
我有一个 CDK 堆栈,可以创建 lambda 和 SNS 主题。策略设置为允许 lambda 发布到 SNS 主题。
我很难在 lambda 运行时代码中指定主题 ARN,因为从技术上讲它尚未创建,只是在堆栈中。
如何在 Lambda 代码中引用主题 ARN,以便 lambda 发布到该主题?Lambda 是用 Python 编写的。我正在使用该fromAsset
方法 ( https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-readme.html ) 在堆栈中指定 lambda 运行时代码。
sns = boto3.client('sns')
responce = sns.publish(
TopicArn="arn would go here --- not sure what to put here w/ no arn",
Message="my_message"
)
Run Code Online (Sandbox Code Playgroud)
您可以将主题 ARN 作为 Lambda 中的环境变量传递
topic = sns.Topic(self, "MyTopic")
lambda.Function(
self, "MyLambda",
...,
environment={'TOPIC_ARN': topic.topic_arn}
)
Run Code Online (Sandbox Code Playgroud)
然后在运行时代码中使用它:
sns = boto3.client('sns')
responce = sns.publish(
TopicArn=os.environ.get('TOPIC_ARN'),
Message="my message"
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3496 次 |
最近记录: |