Хобрук: Ваш путь к мастерству в программировании

Serverless: бессерверная ошибка при развертывании

Поскольку я новичок в стеке без серверов, я пытался создать файл 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), которые нужно объединить.

введите здесь описание изображения

Пожалуйста помоги

18.09.2019

Ответы:


1

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

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

18.09.2019
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...