gpt4 book ai didi

python - CloudFormation !Ref 主题未提供 ARN

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

我在使用 python 运行时将 SQS 主题的 ARN 通过环境变量传递给 lambda 时遇到问题。

这是云形成yaml的相关部分:

  HandlerFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: xxx/
Handler: app.handler
Runtime: python3.8
Timeout: 60
...
Environment:
Variables:
SNS_TOPIC_ARN: !Ref EmailNotificationTopic
EmailNotificationTopic:
Type: AWS::SNS::Topic
Properties:
Subscription:
- Endpoint: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b3333330b33333365282426" rel="noreferrer noopener nofollow">[email protected]</a>
Protocol: email

在我的处理程序中,当我调用 sns_topic = os.environ['SNS_TOPIC_ARN'] 时,我得到的是 EmailNotificationTopic 而不是完整的 ARN,这是我期望从docs .

这会在发布主题时产生问题。我知道我可以对 ARN 进行硬编码,但其他教程(和官方文档)似乎表明 Ref 函数应该提供 ARN。

我对云的形成还很陌生,任何建议都会受到赞赏。谢谢

编辑:我添加了 !Ref EmailNotificationTopic 以在 sam 模板中输出,并确认它显示为完整的 ARN,我还在 AWS 控制台的主题中确认了完整的 ARN,所以看起来当环境变量在 python 中传递/读取时,除了最后一个 :? 之后的最后一位之外,所有内容都被删除了。有人知道如何克服这个问题吗?

最佳答案

我不确定为什么这不起作用,但您可以使用应该始终有效的长格式。

Environment:
Variables:
SNS_TOPIC_ARN:
Ref: EmailNotificationTopic

关于python - CloudFormation !Ref 主题未提供 ARN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65601645/

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