AWS CodePipeline CodeBuild SAM Lambda - PullRequest
       15

AWS CodePipeline CodeBuild SAM Lambda

0 голосов
/ 03 января 2019

У меня автоматическое развертывание PipeLine for Lambda (NodeJS) из CodeCommit.

Мой buildspec.yml

version: 0.1
phases:
 install:
  commands:
    - npm install
    - aws cloudformation package --template-file samTemplate.yaml --s3-bucket codepipeline-551 --output-template-file outputSamTemplate.yaml
artifacts:
  type: zip
  files:
    - samTemplate.yaml
    - outputSamTemplate.yaml

Мой samTemplate.yaml

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
  KashIoTLambda:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: lambda.handler
      Runtime: nodejs8.10
      CodeUri: ./
      Description: ''
      MemorySize: 128
      Timeout: 3
      Role: 'arn:aws:iam::1234:role/abc-backend'
      Events:
        Api1:
          Type: Api
          Properties:
            Path: '/{proxy+}'
            Method: OPTIONS
        Api2:
          Type: Api
          Properties:
            Path: /MyResource
            Method: ANY
      Environment:
        Variables:
          REGION: ap-south-1

Политика, связанная с ролью, упомянутой для CodeBuild, предоставляет доступ ко всем ресурсам и всем командам S3.

Однако из журналов сборки появляется следующая ошибка

[Container] 2019/01/03 13:25:39 Running command npm install
added 122 packages in 3.498s
 [Container] 2019/01/03 13:25:44 Running command aws cloudformation package --template-file samTemplate.yaml --s3-bucket codepipeline-551 --output-template-file outputSamTemplate.yaml
 Unable to upload artifact ./ referenced by CodeUri parameter of ABCLambda resource.
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
 [Container] 2019/01/03 13:25:46 Command did not exit successfully aws cloudformation package --template-file samTemplate.yaml --s3-bucket codepipeline-551 --output-template-file outputSamTemplate.yaml exit status 255
[Container] 2019/01/03 13:25:46 Phase complete: INSTALL Success: false
[Container] 2019/01/03 13:25:46 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: aws cloudformation package --template-file samTemplate.yaml --s3-bucket codepipeline-551 --output-template-file outputSamTemplate.yaml. Reason: exit status 255

1 Ответ

0 голосов
/ 11 июня 2019

Проверьте политики / разрешения на самом ведре.

S3 Bucket Policy

Если вы были похожи на меня, вы могли выбрать опцию default location в качестве хранилища артефактов в настройках конвейера при первой настройке.,В этом случае могут быть политики на самом контейнере S3, блокирующие доступ.

AWS Pipeline Settings

Для меня, как только я удалил политику корзины, unable to upload artifactошибка была устранена, и мой процесс сборки успешно завершился.

Надеюсь, это поможет вам.

...