如何使用无服务器框架创建参数存储配置值?

How do I create a parameter store configuration value with Serverless Framework?

我使用无服务器框架项目的 serverless.yml 文件创建了以下队列:

resources:
  Resources:
    myAppSQSQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "my-app-sqs-queue-${opt:stage, self:provider.stage}"

如何获取创建的队列的 URL 并将其作为参数存储在 AWS Systems Manager 中?我需要将它存储在那里,以便该应用程序之外的其他应用程序知道如何访问它。

我明白了。由于无服务器框架扩展了 CloudFormation,我在这里的 Cloud Formation 文档中找到了答案:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html

可以这样操作:

resources:
  Resources:
    myAppSQSQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "my-app-sqs-queue-${opt:stage, self:provider.stage}"
    myAppSSMParameterQueueName:
      Type: AWS::SSM::Parameter
      Properties:
        Name: /${opt:stage, self:provider.stage}/sqs/my-app-param-name
        Type: String
        Value: 
          Fn::GetAtt:
            - myAppSQSQueue
            - Arn
        Tags:
          Environment: ${opt:stage, self:provider.stage}

这会将队列的 ARN 存储在参数存储中。我不确定是否可以获得 url,但 ARN 适合我的用例。