

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

# チュートリアル: CodePipeline を使用した Lambda 関数のデプロイ
<a name="tutorials-lambda-deploy"></a>

このチュートリアルは、Lambda で設定した関数にコードをデプロイするデプロイアクションを CodePipeline で作成する方法について説明します。ここでは、サンプル Lambda 関数を作成します。この関数では、エイリアスとバージョンを作成し、圧縮された Lambda 関数をソースの場所に追加して、パイプラインで Lambda アクションを実行します。

**注記**  
コンソールでのパイプライン作成の一環として、CodePipeline は S3 アーティファクトバケットをアーティファクトとして使用します (これは S3 ソースアクションで使用するバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

**注記**  
`Lambda` デプロイアクションは V2 タイプのパイプラインでのみ使用できます。

## 前提条件
<a name="tutorials-lambda-deploy-prereqs"></a>

このチュートリアルで CD パイプラインを作成する前に、いつくかのリソースを用意する必要があります。使用を開始するために必要なものは以下のとおりです。

**注記**  
これらのリソースはすべて、同じ AWS リージョン内に作成する必要があります。
+ GitHub などのソースコントロールリポジトリ、または Lambda 関数用に作成した `.zip` ファイルを保存するソース S3 バケット (このチュートリアルでは S3 を使用します)。
+ このアクションのアクセス許可で更新された既存の CodePipeline サービスロールを使用する必要があります。サービスロールを更新するには、「[Lambda デプロイアクションのサービスロールポリシーのアクセス許可](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)」を参照してください。

これらの前提条件を満たした後、チュートリアルに進んで CD パイプラインを作成できます。

## ステップ 1: サンプル Lambda 関数を作成する
<a name="tutorials-lambda-deploy-instances"></a>

このステップでは、デプロイする Lambda 関数を作成します。

**Lambda 関数を作成するには**

1. Lambda コンソールにアクセスし、次のチュートリアルの手順に従ってサンプル Lambda 関数を作成します。

1. 上部のナビゲーションで **[作成]**を選択し、ページの上部で **[ゼロから開始]** を選択します。

1. [**名前**] に「**MyLambdaFunction**」と入力します。

1. 新しいバージョンを発行します。これは、エイリアスが指すボットの更新されたバージョンになります。

   1. 関数を選択します。

   1. **[アクション]** ドロップダウンメニューを選択します。

   1. **[新しいバージョンを発行]** を選択します。

   1. (オプション) **[説明]** に説明を追加します。

   1. **[公開]** を選択します。

1. `aliasV1` などの関数のエイリアスを作成します。

1. エイリアスが、先ほど作成したバージョン (1 など) を指していることを確認します。
**注記**  
[\$1LATEST] を選択した場合、Lambda は複数のバージョンを指すエイリアスに対して \$1LATEST をサポートしていないため、トラフィックシフト機能は使用できません。

## ステップ 2: 関数ファイルをリポジトリにアップロードする
<a name="tutorials-lambda-deploy-file"></a>

関数をダウンロードして、zip ファイルとして保存します。次の手順を使用して、圧縮ファイルを S3 バケットにアップロードします。

**ソースリポジトリに `.zip` ファイルを追加するには**

1. S3 バケットを開きます。

1. **アップロード** を選択します。

1. `sample_lambda_source.zip` ファイルを含む zip ファイルをソースバケットにアップロードします。

   パスをメモします。

   ```
   object key
   ```

## ステップ 3: パイプラインを作成する
<a name="tutorials-lambda-deploy-pipeline"></a>

CodePipeline ウィザードを使用してパイプラインステージを作成し、ソースリポジトリを接続します。

**パイプラインを作成するには**

1. CodePipeline コンソール ([https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)) を開きます。

1. [**ようこそ**] ページ、[**開始方法**] ページ、または [**パイプライン**] ページで、[**パイプラインの作成**] を選択します。

1. **[ステップ 1: 作成オプションを選択する]** ページの **[作成オプション]** で、**[カスタムパイプラインを構築する]** オプションを選択します。**[次へ]** を選択します。

1. **[ステップ 2: パイプラインの設定を選択する]** で、**[パイプライン名]** に「**MyPipeline**」と入力します。

1. CodePipeline は、特徴と料金が異なる V1 タイプと V2 タイプのパイプラインを提供しています。V2 タイプは、コンソールで選択できる唯一のタイプです。詳細については、「[パイプラインタイプ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel)」を参照してください。CodePipeline の料金については、[料金](https://aws.amazon.com/codepipeline/pricing/)を参照してください。

1. **[サービスロール]** で、**[既存サービスロールの使用]** を選択し、このアクションに必要なアクセス許可で更新された CodePipeline サービスロールを選択します。このアクション用に CodePipeline サービスロールを設定するには、「[Lambda デプロイアクションのサービスロールポリシーのアクセス許可](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)」を参照してください。

1. [**詳細設定**] をデフォルト設定のままにし、[**次へ**] を選択します。

1. **[ステップ 3: ソースステージの追加]** ページで、ソースステージを追加します。

   1. [**ソースプロバイダ**] で [**Amazon S3**] を選択します。

   1. **[オブジェクトキー]** で、`sample_lambda_source.zip` などのファイル拡張子を含む .zip ファイルの名前を追加します。

      

   [**次へ**] を選択します。

1. **[ステップ 4: ビルドステージの追加]** ページで、**[スキップ]** を選択します。

1. **[ステップ 5: テストステージの追加]** ページで、**[スキップ]** を選択します。

1. **[ステップ 6: デプロイステージの追加]** ページで、**[Lambda]** を選択します。  
![\[\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)

   1. 関数名とエイリアスを追加します。

   1. デプロイ戦略を選択します。

   1. [**次へ**] を選択します。

1. **ステップ 7: 確認**ページで、パイプライン設定を確認し、**パイプラインの作成**を選択してパイプラインを作成します。  
![\[\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/lambdadeploy-pipeline-screen.png)

## ステップ 4: パイプラインのテスト
<a name="tutorials-lambda-deploy-test"></a>

パイプラインには、end-to-endのネイティブ AWS 継続的デプロイを実行するためのすべてが必要です。次は、コードの変更をソースリポジトリにプッシュすることで機能をテストします。

**パイプラインをテストするには**

1. 設定済みソースリポジトリにコード変更を行い、変更をコミットしてプッシュします。

1. CodePipeline コンソール ([https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)) を開きます。

1. リストからパイプラインを選択します。

1. ステージを通してパイプラインの進行状況を監視します。これでパイプラインが完了し、アクションが Lambda 関数にデプロイされます。

## 詳細情報
<a name="tutorials-lambda-deploy-learn"></a>

Lambda デプロイアクションでは、2 つのデプロイ方法を使用できます。1 つ目の方法は、ソースアクションからの入力アーティファクトなしでトラフィックを単独で移行することです。もう 1 つの方法は、ソースアクションの入力アーティファクトを使用して関数コードを更新し、更新されたコードに基づいて新しいバージョンを発行することです。2 つ目の方法では、エイリアスが指定されている場合、CodePipeline はトラフィックの移行も行います。この Lambda デプロイアクションのチュートリアルでは、ソースアーティファクトを使用して関数を更新する方法を示します。

アクションの詳細については、「[AWS Lambda デプロイアクションリファレンス](action-reference-LambdaDeploy.md)」のアクションリファレンスページを参照してください。