我有以下队列,它是用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,我在这里的CloudFormation文档中找到了答案:
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对我的用例来说很好。