Buildspec.yaml для бессерверной платформы в aws code pipleline

#amazon-web-services #serverless-framework #aws-codepipeline #aws-code-deploy #aws-codebuild

#amazon-веб-сервисы #бессерверная платформа #aws-codepipeline #aws-code-deploy #aws-codebuild

Вопрос:

Я пробую свои силы в конвейере CI / CD для бессерверной платформы.

Я сделал аналогичную вещь для SAM framework и заставил ее работать. Платформа SAM состоит из двух этапов упаковки и развертывания (развертывание выполняется с помощью действий cloudformation).

 version: 0.2
phases:
  install:
    runtime-versions:
        nodejs: 10
        #trying after adding the art effect in code deploy  
  build:
    commands:
      - npm install time
      - export BUCKET=lambda-loadeo-git
      - aws cloudformation package --template-file template.yml --s3-bucket $BUCKET --output-template-file outputtemplate.yml
artifacts:
  type: zip
  files:
    - template.yml
    - outputtemplate.yml
  

Но я не совсем уверен, как должен работать бессерверный.
Я знаю, что без сервера была только стадия «развертывания», а не пакет и все.

Я не знаю, как выполняется развертывание здесь, в CI / CD для бессерверной платформы. который выдает ошибку при команде развертывания без сервера.

Вот мой файл buildspec.yaml

 version: 0.1
phases:
  install:
    commands:
      - npm install
      - npm install -g mocha
      - npm install -g serverless
  build:
    commands:
      - serverless deploy 
  post_build:
    commands:

      - echo build complete
  

который пытается развернуть этот шаблон:

 service: serverless
frameworkVersion: '2'

provider:
  name: aws
  runtime: python2.7
  profile: default 


functions:
  getInfo:
    handler: handler.getInfo
    events:
     - http:
        path: users/info
        method: get

  createInfo:
    handler: handlerpost.createInfo
    events:
     - http:
        path: users/create
        method: post

  patchInfo:
    handler: handlerpatch.patchInfo
    events:
     - http:
        path: users/update
        method: patch
  

Может ли кто-нибудь помочь мне со сборкой и развертыванием этой части?

Комментарии:

1. Не могли бы вы уточнить, какую именно ошибку вы получаете, когда пишете «которая выдает ошибку при команде развертывания без сервера». и какая строка ее выдает?

2. @Marcin. Код состояния контекста фазы: Сообщение COMMAND_EXECUTION_ERROR: ошибка при выполнении команды: развертывание без сервера. Причина: статус выхода 1

3. @Marcin отредактировал вопрос с выводом

4. Привет. Насколько я помню, вы не можете использовать поставщика CodePipline для CodeDeploy в вашем регионе. Я думаю, что если не CB, то можно было бы использовать lambda. Вы можете создать новый вопрос с любым имеющимся у вас кодом для этого или ошибками. Таким образом, другие пользователи SO также могут просмотреть его и попытаться помочь.

5. К сожалению, я мало использую Cognito, поэтому не могу с этим сильно помочь.

Ответ №1:

На основе комментариев и обсуждения в чате.

Было несколько проблем, вызывающих проблемы:

  1. Отсутствует serverless.yml . Проблема была решена путем переименования template.yml в serverless.yml .
  2. Неправильный профиль в бессерверном провайдере. Проблема была устранена путем ее удаления.
  3. Отсутствует разрешение в роли CodeBuild. Это было исправлено путем добавления к роли разрешений codeformation, s3 и cloudwatch logs.