Dav*_*man 3 amazon-sqs serverless-framework aws-ssm aws-parameter-store
我有以下使用无服务器框架项目的 serverless.yml 文件创建的队列:
resources:
Resources:
myAppSQSQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "my-app-sqs-queue-${opt:stage, self:provider.stage}"
Run Code Online (Sandbox Code Playgroud)
如何获取创建的队列的 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}
Run Code Online (Sandbox Code Playgroud)
这会将队列的 ARN 存储在参数存储中。我不确定是否可以获取 url,但 ARN 适合我的用例。