2

Code Pipeline を使用して、コードのデプロイを自動化しようとしました。wiki に記載されているように、Git Hub -> Code Build -> Cloud Formation を使用します。

Lambda の AWS 自動化

このスレッドで提案されたいくつかの変更の後、パイプラインを実行することができました

ただし、コード パイプラインを使用しているときは常に、クラスが見つからないと言って Lambda テストが失敗します。

確認するために、jar を AWS ラムダ コンソールに直接アップロードしたところ、問題なく動作しました。

また、S3 の「MyAppBuild」フォルダーにある aws コード ビルドによってビルドされた jar も確認しました。これには、target/app-1.0-SNAPSHOT.jar の jar ファイルが、SamTemplate.yml と共に zip ファイルに含まれています。

これは SamTemplate.yml です

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Outputs the time

Parameters:
  SourceBucket:
    Type: String
    Description: S3 bucket name for the CodeBuild artifact
  SourceArtifact:
    Type: String
    Description: S3 object key for the CodeBuild artifact

Resources:
  TimeFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: com.xxx.Hello::handleRequest
      Runtime: java8
      CodeUri:
         Bucket: !Ref SourceBucket
         Key: !Ref SourceArtifact
      Events:
        MyTimeApi:
          Type: Api
          Properties:
            Path: /TimeResource
            Method: GET

ここにbuildSpec.yamlがあります

version: 0.2
phases:
  build:
    commands:
      - echo Build started on `date`
      - mvn test
  post_build:
    commands:
      - echo Build completed on `date`
      - mvn package
  install:
    commands:
      - aws cloudformation package --template-file SamTemplate.yaml --s3-bucket codepipeline-us-east-1-xxxx
                                       --output-template-file NewSamTemplate.yaml
artifacts:
  type: zip
  files:
    - SamTemplate.yaml
    - target/app-1.0-SNAPSHOT.jar

試着するための提案はありますか?私はメイヴンを使っています。

4

1 に答える 1