Без сервера: ошибка без сервера при развертывании - PullRequest
0 голосов
/ 18 сентября 2019

Поскольку я новичок в безостановочном стеке, я пытался создать файл yml, который будет использоваться для развертывания (лямбда-функция NodeJS).Но я могу обнаружить синтаксическую ошибку при развертывании.

Ниже приведен файл 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 голосов
/ 18 сентября 2019

Правильный способ использования 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/*'

Первый аргумент : - это разделитель, а второй - список для объединения строк.

...