

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

# AWS Lambda デプロイアクションリファレンス
<a name="action-reference-LambdaDeploy"></a>

 AWS Lambda デプロイアクションを使用して、サーバーレスデプロイ用のアプリケーションコードのデプロイを管理します。関数をデプロイし、次のようにトラフィックデプロイのデプロイ戦略を使用できます。
+ トラフィックシフト用の Canary デプロイとリニアデプロイ
+ All at Once デプロイ

**注記**  
このアクションは V2 タイプのパイプラインでのみサポートされています。

**Topics**
+ [アクションタイプ](#action-reference-LambdaDeploy-type)
+ [設定パラメータ](#action-reference-LambdaDeploy-parameters)
+ [入力アーティファクト](#action-reference-LambdaDeploy-input)
+ [出力アーティファクト](#action-reference-LambdaDeploy-output)
+ [出力変数](#action-reference-LambdaDeploy-output-variables)
+ [Lambda デプロイアクションのサービスロールポリシーのアクセス許可](#action-reference-LambdaDeploy-permissions-action)
+ [アクションの宣言](#action-reference-LambdaDeploy-example)
+ [関連情報](#action-reference-LambdaDeploy-links)

## アクションタイプ
<a name="action-reference-LambdaDeploy-type"></a>
+ カテゴリ:`Deploy`
+ 所有者: `AWS`
+ プロバイダー: `Lambda`
+ バージョン: `1`

## 設定パラメータ
<a name="action-reference-LambdaDeploy-parameters"></a>

**FunctionName**  
必須: はい  
Lambda で作成した関数の名前 (`MyLambdaFunction` など)。  
バージョンを作成しておく必要があります。

**FunctionAlias**  
必須: いいえ  
Lambda で作成した関数のエイリアス (`live` など)。この関数をデプロイします。エイリアスが存在し、アクション実行の開始時に、エイリアスにバージョンが 1 つある必要があります。(ロールバックターゲットバージョンになります)。  
指定しない場合、アクションはソースアーティファクトを `$LATEST` にデプロイし、新しいバージョンを作成します。このユースケースでは、デプロイ戦略とターゲットバージョンオプションは使用できません。

**PublishedTargetVersion**  
必須: いいえ  
FunctionAlias にデプロイする Lambda 関数のバージョン。パイプラインまたはアクションレベルの変数を使用できます (`#{variables.lambdaTargetVersion}` など)。アクション実行の開始時に、バージョンを公開する必要があります。  
入力アーティファクトが指定されていない場合は必須です。

**DeployStrategy**  
必須: いいえ (デフォルトは `AllAtOnce`)  
  
Lambda デプロイアクションが、Lambda 関数の元のバージョンから **FunctionAlias** の新しいバージョンにトラフィックを移行するために採用するレートを決定します。使用可能なデプロイ戦略は Canary またはリニアです。使用できる形式:  
+ `AllAtOnce` - 

  すべてのトラフィックは、更新された Lambda 関数に一度に移行します。

   指定されなかった場合、デフォルト値は `AllAtOnce` です。
+ `Canary10Percent5Minutes` - 最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 5 分後にデプロイされます。

  パーセンテージと分の値の両方を変更できます。
+ `Linear10PercentEvery1Minute` - すべてのトラフィックが移行されるまで、毎分トラフィックの 10 パーセントを移行します。

  パーセンテージと分の値の両方を変更できます。
このフィールドについては、次の考慮事項に注意してください。  
+ 最大合計待機時間は 2 日です。
+ **FunctionAlias** が指定されている場合にのみ使用できます。


**アラーム**  
必須: いいえ  
Lambda デプロイ用に設定されたアラーム名のカンマ区切りリスト。最大 10 のアラームを追加できます。モニタリングされたアラームが ALARM 状態になると、アクションは失敗します。

次の画像は、アクションの [編集] ページの例を示しています。

![\[Lambda デプロイアクションを使用した新しいパイプラインの [アクションを編集する] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)


## 入力アーティファクト
<a name="action-reference-LambdaDeploy-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** デプロイ中にスクリプトアクションをサポートするために提供されたファイル。

## 出力アーティファクト
<a name="action-reference-LambdaDeploy-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## 出力変数
<a name="action-reference-LambdaDeploy-output-variables"></a>

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**FunctionVersion**  
デプロイされた新しい Lambda 関数のバージョン。

## Lambda デプロイアクションのサービスロールポリシーのアクセス許可
<a name="action-reference-LambdaDeploy-permissions-action"></a>

CodePipeline がアクションを実行する際、CodePipeline サービスロールには、最小特権でのアクセスに適切にスコープダウンされた次のアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementForLambda",
            "Effect": "Allow",
            "Action": [
                "lambda:GetAlias",
                "lambda:GetFunctionConfiguration",
                "lambda:GetProvisionedConcurrencyConfig",
                "lambda:PublishVersion",
                "lambda:UpdateAlias",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}",
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*"
            ]
        },
        {
            "Sid": "StatementForCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms"
            ],
            "Resource": [
                "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}"
            ]
        },
        {
            "Sid": "StatementForLogs1",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}",
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForLogs2",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*"
            ]
        }
    ]
}
```

------

## アクションの宣言
<a name="action-reference-LambdaDeploy-example"></a>

------
#### [ YAML ]

```
name: Deploy
actionTypeId:
  category: Deploy
  owner: AWS
  provider: Lambda
  version: '1'
runOrder: 1
configuration:
  DeployStrategy: Canary10Percent5Minutes
  FunctionAlias: aliasV1
  FunctionName: MyLambdaFunction
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: DeployVariables
```

------
#### [ JSON ]

```
{
    "name": "Deploy",
    "actionTypeId": {
        "category": "Deploy",
        "owner": "AWS",
        "provider": "Lambda",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "DeployStrategy": "Canary10Percent5Minutes",
        "FunctionAlias": "aliasV1",
        "FunctionName": "MyLambdaFunction"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "DeployVariables"
},
```

------

## 関連情報
<a name="action-reference-LambdaDeploy-links"></a>

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+  [チュートリアル: CodePipeline を使用した Lambda 関数のデプロイ](tutorials-lambda-deploy.md) – このチュートリアルでは、サンプル Lambda 関数の作成について説明します。ここでは、エイリアスとバージョンを作成し、圧縮された Lambda 関数をソースの場所に追加し、パイプラインで Lambda アクションを実行します。