由于我是newbee to severless堆栈,我尝试创建一个用于部署的yml文件(NodeJS lambda函数)。但是我可以在部署时发现一个语法错误。
请在serverless.yml下面找到
service: secretManager
provider:
name: aws
runtime: nodejs10.x
timeout: 300
memorySize: 512
region: us-east-2
stage: ${opt:stage,'v1'}
role: secretManager
stackTags:
ApplicationId: ACL_9999999
Product: secretManager
Project: secretManager
functions:
getParams:
handler: getFromParamStore.getParams
role: secretManager
resources:
Resources:
secretManager:
Type: AWS::IAM::Role
Properties:
Policies:
- PolicyName: myPolicy
PolicyDocument:
Version: '2017'
Statement:
- Effect: Allow
Action:
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
- ssm:GetParameters
- ssm:GetParameter
- ssm:DescribeParameters
Resource:
- 'Fn::Join':
- ':'
- 'arn:aws:logs'
- 'log-group:/aws/lambda/*:*:*'
- 'arn:aws:ssm:*:*:parameter/*'
package:
include:
- serverless.yml而部署无服务器则会抛出错误。
错误: CloudFormation模板无效:模板错误:每个Fn::Join对象都需要两个参数,(1)字符串分隔符和(2)要联接的字符串列表或返回要联接的字符串列表(如Fn::GetAZs)的函数。
请帮帮忙
发布于 2019-09-19 04:46:06
正确使用Fn::Join的方法是:
resources:
Resources:
secretManagerLambdaRole:
Type: AWS::IAM::Role
Properties:
Policies:
- PolicyName: myPolicy
PolicyDocument:
Version: '2017'
Statement:
- Effect: Allow
Action:
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
- ssm:GetParameters
- ssm:GetParameter
- ssm:DescribeParameters
Resource:
- 'Fn::Join':
- ':' # delimiter
- - 'arn:aws:logs'
- 'log-group:/aws/lambda/*:*:*'
- 'arn:aws:ssm:*:*:parameter/*'第一个参数:是分隔符,第二个参数是要连接的字符串列表。
https://stackoverflow.com/questions/58000432
复制相似问题