Lambda Java AWS SAMで を使用して CodeBuild Lambda 関数をデプロイする - AWS CodeBuild

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda Java AWS SAMで を使用して CodeBuild Lambda 関数をデプロイする

AWS Serverless Application Model (AWS SAM) は、サーバーレスアプリケーションを構築するためのオープンソースのフレームワークです。詳細については、「」の「 AWS Serverless Application Modelリポジトリ」を参照してください GitHub。次の Java サンプルでは、Gradle を使用して AWS Lambda 関数をビルドおよびテストします。その後、 CLI AWS SAM を使用してAWS CloudFormationテンプレートとデプロイバンドルをデプロイします。 CodeBuild Lambda を使用すると、構築、テスト、デプロイの各ステップが自動的に処理されるため、1 つの構築に手動で介入することなくインフラストラクチャをすばやく更新できます。

AWS SAM リポジトリをセットアップする

CLI を使用して AWS SAM AWS SAMHello Worldプロジェクトを作成します。

AWS SAM プロジェクトを作成するには
  1. ローカルマシンに AWS SAM CLI をインストールするには、AWS Serverless Application Modelデベロッパーガイド」の手順に従います。

  2. sam init を実行して、次のプロジェクト設定を選択します。

    Which template source would you like to use?: 1 - AWS Quick Start Templates Choose an AWS Quick Start application template: 1 - Hello World Example Use the most popular runtime and package type? (Python and zip) [y/N]: N Which runtime would you like to use?: 8 - java21 What package type would you like to use?: 1 - Zip Which dependency manager would you like to use?: 1 - gradle Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]: N Project name [sam-app]: <insert project name>
  3. サポートされているソースリポジトリにAWS SAMプロジェクトフォルダをアップロードします。サポートされているソースタイプのリストについては、「」を参照してくださいProjectSource

CodeBuild Lambda Java プロジェクトを作成する

AWS CodeBuild Lambda Java プロジェクトを作成し、ビルドに必要な IAM アクセス許可を設定します。

CodeBuild Lambda Java プロジェクトを作成するには
  1. AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home) を開きます。

  2. CodeBuild 情報ページが表示される場合は、ビルドプロジェクトの作成を選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。

  3. [プロジェクト名] に、このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。

  4. ソース で、AWS SAMプロジェクトがあるソースリポジトリを選択します。

  5. [環境] で以下の操作を行います。

    • コンピューティング でLambda を選択します。

    • Runtime(s) で、Java を選択します。

    • イメージ でaws/codebuild/amazonlinux-x86_64-lambda-standard :corretto21 を選択します。

    • サービスロール では新しいサービスロールを選択したままにします。ロール名 を書き留めます。これは、このサンプルの後半でプロジェクトの IAM アクセス許可を更新するときに必要です。

  6. Create build project (ビルドプロジェクトの作成)を選択します。

  7. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  8. ナビゲーションペインで、ロールを選択し、プロジェクトに関連付けられたサービスロールを選択します。でプロジェクトロールを検索するには、ビルドプロジェクト CodeBuild を選択し、編集環境、サービスロールの順に選択します。

  9. [信頼関係] タブを選択し、続いて [信頼ポリシーの編集] を選択します。

  10. IAM ロールに次のインラインポリシーを追加します。これは、後でAWS SAMインフラストラクチャをデプロイするために使用されます。詳細については、「 IAM ユーザーガイド」の「IAM ID アクセス許可の追加および削除」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": [ "*" ] } ] }

プロジェクトの buildspec をセットアップする

Lambda 関数を構築、テスト、デプロイするために、 は buildspec からビルドコマンド CodeBuild を読み取って実行します。

プロジェクトの buildspec を設定するには
  1. CodeBuild コンソールでビルドプロジェクトを選択し、編集Buildspec を選択します。

  2. Buildspec でビルドコマンドを挿入を選択し、エディタ に切り替えます

  3. 事前に入力されたビルドコマンドを削除し、次の buildspec に貼り付けます。

    version: 0.2 env: variables: GRADLE_DIR: "HelloWorldFunction" phases: build: commands: - echo "Running unit tests..." - cd $GRADLE_DIR; gradle test; cd .. - echo "Running build..." - sam build --template-file template.yaml - echo "Running deploy..." - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml - yes | sam deploy
  4. [Update buildspec (buildspec の更新)] を選択します。

AWS SAM Lambda インフラストラクチャをデプロイする

CodeBuild Lambda を使用して Lambda インフラストラクチャを自動的にデプロイする

Lambda インフラストラクチャをデプロイするには
  1. [Start build] を選択します。これにより、 AWS Lambdaを使用してAWS SAMアプリケーションが自動的に構築、テスト、デプロイされますAWS CloudFormation。

  2. ビルドが完了したら、 AWS Lambdaコンソールに移動し、AWS SAMプロジェクト名で新しい Lambda 関数を検索します。

  3. 関数の概要で API Gateway を選択し、API エンドポイント URL をクリックして、Lambda 関数をテストします。メッセージ を含むページが開きます"message": "hello world"

インフラストラクチャのクリーンアップ

このチュートリアルで使用したリソースに対して追加料金が発生しないようにするには、 AWS SAM テンプレートと で作成したリソースを削除します CodeBuild。

インフラストラクチャをクリーンアップするには
  1. AWS CloudFormation コンソールに移動し、 を選択しますaws-sam-cli-managed-default

  2. リソース で、デプロイバケット を空にしますSamCliSourceBucket

  3. aws-sam-cli-managed-default スタックを削除します。

  4. AWS SAM プロジェクトに関連付けられている AWS CloudFormation スタックを削除します。このスタックの名前はAWS SAMプロジェクトと同じである必要があります。

  5. CloudWatch コンソールに移動し、 CodeBuild プロジェクトに関連付けられている CloudWatch ロググループを削除します。

  6. CodeBuild コンソールに移動し、ビルド CodeBuild プロジェクトの削除 を選択してプロジェクトを削除します。