Code Pipeline を使用して、コードのデプロイを自動化しようとしました。wiki に記載されているように、Git Hub -> Code Build -> Cloud Formation を使用します。
このスレッドで提案されたいくつかの変更の後、パイプラインを実行することができました
ただし、コード パイプラインを使用しているときは常に、クラスが見つからないと言って 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
試着するための提案はありますか?私はメイヴンを使っています。