由于我是无法分割堆栈的新手,因此我试图创建一个用于部署的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)加入。

在此处输入图片说明

请帮忙

#1楼 票数:0

使用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/*'

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

  ask by HemantaLogix translate from so

未解决问题?本站智能推荐:

1回复

我低于nextjs无服务器部署错误(运行npx无服务器)

在部署无服务器 nextjs 和我的无服务器配置时总是出现此错误
1回复

无服务器部署包

我试图绕过包步骤并使用现有包来部署和更新 CloudFormation 堆栈。 我使用以下命令创建了无服务器包: 得到包含以下文件的包目录 尝试使用以下命令进行部署: 低于错误 ServerlessError:此命令只能在无服务器服务目录中运行。 如果您在 PluginManager.valida
1回复

无服务器部署失败

Iam尝试使用无服务器将lambda函数部署到AWS。 执行时 无服务器部署-详细 我每次都会收到以下错误: 无服务器错误--------------------------------------- 发生错误:mainTable-无效的KeySchema:第一个>
2回复

无服务器条件函数部署

以下配置是从我的serverless.yml提取的 我只想在region-a部署apiHandler和taskHandler函数 并将alexaHandler部署在region-b , region-c和region-d 。 如果执行命令sls deploy --region us-
1回复

AWS部署无服务器限制?

我有一个无服务器项目,它有很多 API 端点,当我尝试一次部署时,出现此错误: 错误:CloudFormation 模板无效:模板格式错误:资源数量,293,大于允许的最大值,200 在 C:...\\AppData\\Roaming\\npm\\node_modules\\serverless\\
1回复

无服务器部署中的自签名证书错误

我正在尝试从我的本地机器在 AWS 上部署无服务器应用程序。该机器位于公司防火墙后面。 最初我遇到连接错误,所以我在终端上添加了 http_proxy 和 https_proxy 设置。 现在,当我尝试部署时,我不断在证书链中收到错误的自签名证书。 我还从 puttygen 创建了一个证书并将 np
1回复

访问部署到AWSAPI网关的AWS无服务器API时返回内部服务器错误

我正在尝试部署可操纵AWS DynamoDB数据库的API。 我使用了AWS .Net SDK提供的无服务器API模板。 .Net Core API在本地运行良好,但是在将其发布到AWS Lambda之后,每当我尝试访问该API时,都会返回“内部服务器错误”。 在CloudWatch L
1回复

无服务器错误:部署到Gitlab时“存储桶已存在”

我是无服务器堆栈的新手,以下是 serverless.yml 文件。 在 GitLab 中部署它时,我收到错误消息: Serverless.yml 文件是: