gpt4 book ai didi

aws-lambda - 无服务器框架 : CloudFormation Variable Import/Export

转载 作者:行者123 更新时间:2023-12-04 04:19:12 24 4
gpt4 key购买 nike

我正在使用无服务器框架,并且有多个服务试图使用同一个 SQS 队列。我可以在第一个服务中成功创建资源,但第二个服务在部署到 AWS 时缺少 lambda 触发器。硬编码 ARN ID 将成功触发,所以我只能假设我的语法/缩进有问题,但这与我导出/导入我的 API 网关详细信息的方式非常相似,我只是没有看到它。

我有一个 SQS 队列设置并从我的第一个服务中导出,如下所示:

resources:
- Resources:
InitializeAuthenticationQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "InitializeAuthenticationQueue"
- Outputs:
InitializeAuthenticationQueueArnId:
Value:
Fn::GetAtt:
- InitializeAuthenticationQueue
- Arn
Export:
Name: ${self:provider.stage}-InitializeAuthenticationQueueQueueArnId

在我的第二个服务中,我尝试使用 SQS ARN ID 作为函数的触发器,如下所示:

functions:
authenticationIntialize:
handler: myHandlerFile.myHandler
events:
- sqs:
arn:
'Fn::ImportValue': ${self:provider.stage}-InitializeAuthenticationQueueArnId

我也试过这个,看看我的缩进是否有误:

functions:
authenticationIntialize:
handler: myHandlerFile.myHandler
events:
- sqs:
arn:
'Fn::ImportValue': ${self:provider.stage}-InitializeAuthenticationQueueArnId

感觉我在这方面遗漏了一些明显的东西,但我已经坚持太久了。谁能帮我找出明显的地方?

最佳答案

你得到了什么错误?生成的 .serverless/cloudformation-template-update-stack.json 具有什么导出和导入值?

我通常发现使用内部无服务器 CloudFormation 属性引用更容易。因此,在您尝试导入 SQS ARN 的地方执行此操作:

${cf:STACK_NAME.InitializeAuthenticationQueueArnId}

其中 STACK_NAME 是无服务器部署生成的 CloudFormation 堆栈的名称,它具有 SQS ARN 输出。使用此方法时,您引用要导入的值的方式是通过 CloudFormation 键而不是导出名称(这确实令人困惑)

关于aws-lambda - 无服务器框架 : CloudFormation Variable Import/Export,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59824913/

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