首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无服务器:部署时出现无服务器错误

无服务器:部署时出现无服务器错误
EN

Stack Overflow用户
提问于 2019-09-19 04:38:34
回答 1查看 107关注 0票数 0

由于我是newbee to severless堆栈,我尝试创建一个用于部署的yml文件(NodeJS lambda函数)。但是我可以在部署时发现一个语法错误。

请在serverless.yml下面找到

代码语言:javascript
复制
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)的函数。

enter image description here

请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2019-09-19 04:46:06

正确使用Fn::Join的方法是:

代码语言:javascript
复制
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/*'

第一个参数:是分隔符,第二个参数是要连接的字符串列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58000432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档