如何使用无服务器框架创建参数存储配置值?
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 适合我的用例。
我使用无服务器框架项目的 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 适合我的用例。