【问题标题】:Serverless Framework: CloudFormation Variable Import/Export无服务器框架:CloudFormation 变量导入/导出
【发布时间】:2020-05-06 13:24:24
【问题描述】:

我正在使用无服务器框架并且有多个服务正在尝试使用相同的 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

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

【问题讨论】:

    标签: aws-lambda yaml serverless-framework serverless aws-serverless


    【解决方案1】:

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

    我通常发现使用内部无服务器 CloudFormation 属性参考更容易。因此,如果您尝试导入 SQS ARN,请执行以下操作:

    ${cf:STACK_NAME.InitializeAuthenticationQueueArnId}

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

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2021-11-11
      • 1970-01-01
      • 2020-08-05
      • 2021-04-18
      相关资源
      最近更新 更多