

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

# AWS Lambda アクションリファレンスを呼び出す
<a name="action-reference-Lambda"></a>

パイプラインのアクションとして Lambda 関数を実行できます。この関数への入力であるイベントオブジェクトを使用して、関数はアクション設定、入力アーティファクトの場所、出力アーティファクトの場所、およびアーティファクトへのアクセスに必要なその他の情報にアクセスできます。Lambda 呼び出し関数に渡されるイベントの例については、[JSON イベントの例](#action-reference-Lambda-event) を参照してください。Lambda 関数の実装の一部として、`[PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)` または `[PutJobFailureResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)` への呼び出しが必要です。それ以外の場合、このアクションの実行は、アクションがタイムアウトするまでハングします。アクションの出力アーティファクトを指定する場合、関数の実装の一部として S3 バケットにアップロードする必要があります。

**重要**  
CodePipeline が Lambda に送信する JSON イベントをログに記録しないでください。これにより、CloudWatch Logs にユーザー認証情報が記録される可能性があるためです。CodePipeline ロールは JSON イベントを使用して、一時的な認証情報を `artifactCredentials` フィールドの Lambda に渡します。イベント例については、「[JSON イベントの例](actions-invoke-lambda-function.md#actions-invoke-lambda-function-json-event-example)」を参照してください。

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

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

**FunctionName**  
必須: はい  
`FunctionName` は、Lambda で作成された関数の名前です。

**UserParameters**  
必須: いいえ  
Lambda 関数による入力として処理できる文字列。

## 入力アーティファクト
<a name="action-reference-Lambda-input"></a>
+ **アーティファクトの数:** `0 to 5`
+ **説明:** Lambda 関数で使用できるようにするアーティファクトのセット。

## 出力アーティファクト
<a name="action-reference-Lambda-output"></a>
+ **アーティファクトの数:** `0 to 5` 
+ **説明:** Lambda 関数によって出力として生成されるアーティファクトのセット。

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

このアクションは、変数として [PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html) リクエストのセクション `outputVariables` に含まれるすべてのキー値のペアを生成します。

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

## アクション設定の例
<a name="action-reference-Lambda-example"></a>

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

```
Name: Lambda
Actions:
  - Name: Lambda
    ActionTypeId:
      Category: Invoke
      Owner: AWS
      Provider: Lambda
      Version: '1'
    RunOrder: 1
    Configuration:
      FunctionName: myLambdaFunction
      UserParameters: 'http://192.0.2.4'
    OutputArtifacts: []
    InputArtifacts: []
    Region: us-west-2
```

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

```
{
    "Name": "Lambda",
    "Actions": [
        {
            "Name": "Lambda",
            "ActionTypeId": {
                "Category": "Invoke",
                "Owner": "AWS",
                "Provider": "Lambda",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "FunctionName": "myLambdaFunction",
                "UserParameters": "http://192.0.2.4"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [],
            "Region": "us-west-2"
        }
    ]
},
```

------

## JSON イベントの例
<a name="action-reference-Lambda-event"></a>

Lambda アクションは、ジョブ ID、パイプラインアクション設定、入力および出力アーティファクトの場所、およびアーティファクトの暗号化情報を含む JSON イベントを送信します。ジョブワーカーは、これらの詳細にアクセスして Lambda アクションを完了します。詳細については、[ジョブの詳細](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_JobDetails.html)を参照してください。以下に示しているのは、イベントの例です。

```
{
    "CodePipeline.job": {
        "id": "11111111-abcd-1111-abcd-111111abcdef",
        "accountId": "111111111111",
        "data": {
            "actionConfiguration": {
                "configuration": {
                    "FunctionName": "MyLambdaFunction",
                    "UserParameters": "input_parameter"
                }
            },
            "inputArtifacts": [
                {
                    "location": {
                        "s3Location": {
                            "bucketName": "bucket_name",
                            "objectKey": "filename"
                        },
                        "type": "S3"
                    },
                    "revision": null,
                    "name": "ArtifactName"
                }
            ],
            "outputArtifacts": [],
            "artifactCredentials": {
                "secretAccessKey": "secret_key",
                "sessionToken": "session_token",
                "accessKeyId": "access_key_ID"
            },
            "continuationToken": "token_ID",
            "encryptionKey": { 
              "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
              "type": "KMS"
            }
        }
    }
}
```

JSON イベントは、CodePipeline の Lambda アクションの次のジョブ詳細を提供します。
+ `id`: システムによって生成されたジョブの固有の ID。
+ `accountId`: ジョブに関連付けられた AWS アカウント ID。
+ `data`: ジョブワーカーがジョブを完了するために必要なその他の情報。
  + `actionConfiguration`: Lambda アクションのアクションパラメータ。定義については、[設定パラメータ](#action-reference-Lambda-config) を参照してください。
  + `inputArtifacts`: アクションに指定されたアーティファクト。
    + `location`: アーティファクトストアの場所。
      + `s3Location`: アクションの入力アーティファクトの場所情報。
        + `bucketName`: アクションのパイプラインアーティファクトストアの名前（例: codepipeline-us-east-2-1234567890という名前の Amazon S3 バケット）。
        + `objectKey`: アプリケーションの名前（例: `CodePipelineDemoApplication.zip`）。
      + `type`: ロケーション内のアーティファクトのタイプ。現在、`S3` は唯一の有効なアーティファクトタイプです。
    + `revision`: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID（Amazon Simple Storage Service）になります。詳細については、[ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html) を参照してください。
    + `name`: `MyApp` などの作業するアーティファクトの名前。
  + `outputArtifacts`: アクションの出力。
    + `location`: アーティファクトストアの場所。
      + `s3Location`: アクションの出力アーティファクトの場所情報。
        + `bucketName`: アクションのパイプラインアーティファクトストアの名前（例: codepipeline-us-east-2-1234567890という名前の Amazon S3 バケット）。
        + `objectKey`: アプリケーションの名前（例: `CodePipelineDemoApplication.zip`）。
      + `type`: ロケーション内のアーティファクトのタイプ。現在、`S3` は唯一の有効なアーティファクトタイプです。
    + `revision`: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID（Amazon Simple Storage Service）になります。詳細については、[ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html) を参照してください。
    + `name`: `MyApp` などのアーティファクトの出力の名前。
  + `artifactCredentials`: Amazon S3 バケットの入力アーティファクトと出力アーティファクトへのアクセスに使用される AWS セッション認証情報。これらの認証情報は、 AWS Security Token Service （AWS STS）によって発行される一時的な認証情報です。
    + `secretAccessKey`: セッションのシークレットアクセスキー。
    + `sessionToken`: セッションのトークン。
    + `accessKeyId`: セッションのシークレットアクセスキー。
  + `continuationToken`: アクションによって生成されたトークン。今後のアクションでは、このトークンを使用して、アクションの実行中のインスタンスを識別します。アクションが完了すると、継続トークンは指定されません。
  + `encryptionKey`: キーなど、アーティファクトストア内のデータの暗号化に使用される暗号化 AWS KMS キー。これが未定義の場合は、Amazon Simple Storage Service のデフォルトキーが使用されます。
    + `id`: キーを識別するために使用された ID。 AWS KMS キーの場合、キー ID、キー ARN、またはエイリアス ARN を使用できます。
    + `type`: AWS KMS などの暗号化キーのタイプ。

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/) – パイプラインの Lambda アクションと CloudFormation アーティファクトの詳細については、[CodePipeline Pipelines でのパラメータオーバーライド関数の使用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html)」、[「Lambda ベースのアプリケーションのデプロイの自動化](https://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html)」、および[AWS CloudFormation 「アーティファクト](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)」を参照してください。
+ [CodePipeline のパイプラインで AWS Lambda 関数を呼び出す](actions-invoke-lambda-function.md) - この手順では、サンプルの Lambda 関数を示し、コンソールを使用して Lambda 呼び出しアクションでパイプラインを作成する方法を示します。