

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# 「AWS Lambda 呼び出し」アクション YAML
<a name="lam-invoke-action-ref"></a>

**AWS Lambda 呼び出し**アクションの YAML 定義を次に示します。このアクションの使用方法については、「[ワークフローを使用して Lambda 関数を呼び出す](lam-invoke-action.md)」を参照してください。

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**注記**  
後続の YAML プロパティのほとんどには、対応する UI 要素がビジュアルエディタにあります。UI 要素を検索するには、**[Ctrl\$1F]** を使用します。要素は、関連付けられた YAML プロパティとともに一覧表示されます。

```
# The workflow definition starts here.
# See 最上位プロパティ for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  LambdaInvoke\$1nn: 
    Identifier: aws/lambda-invoke@v1
    DependsOn:
      - dependent-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - request-payload
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      Function: my-function|function-arn
      AWSRegion: us-west-2
      # Specify RequestPayload or RequestPayloadFile, but not both.
      RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}'
      RequestPayloadFile: my/request-payload.json
      ContinueOnError: true|false
      LogType: Tail|None
      ResponseFilters: '{"name": ".name", "company": ".department.company"}'
    Outputs:
      Artifacts:
        - Name: lambda_artifacts
          Files: 
            - "lambda-response.json"
```

## LambdaInvoke
<a name="lam.invoke.name"></a>

(必須)

アクションの名前を指定します。すべてのアクション名は、ワークフロー内で一意である必要があります。アクション名で使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、アクション名の特殊文字とスペースを有効にすることはできません。

デフォルト: `Lambda_Invoke_Action_Workflow_nn`。

対応する UI: [設定] タブ/**[アクション名]**

## Identifier
<a name="lam.invoke.identifier"></a>

(*LambdaInvoke*/**Identifier**)

(必須)

アクションを識別します。バージョンを変更したい場合でない限り、このプロパティを変更しないでください。詳細については、「[使用するアクションバージョンの指定](workflows-action-versions.md)」を参照してください。

デフォルト: `aws/lambda-invoke@v1`。

対応する UI: ワークフロー図/LambdaInvoke\$1nn/**aws/lambda-invoke@v1** ラベル

## DependsOn
<a name="lam.invoke.dependson"></a>

(*LambdaInvoke*/**DependsOn**)

(オプション)

このアクションを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。

「DependsOn」機能の詳細については、「[アクションの順序付け](workflows-depends-on.md)」を参照してください。

対応する UI: [入力] タブ/**[依存 - オプション]**

## Compute
<a name="lam.invoke.computename"></a>

(*LambdaInvoke*/**Compute**)

(オプション)

ワークフローアクションの実行に使用されるコンピューティングエンジンです。コンピューティングはワークフローレベルまたはアクションレベルで指定できますが、両方を指定することはできません。ワークフローレベルで指定すると、コンピューティング設定はワークフローで定義されたすべてのアクションに適用されます。ワークフローレベルでは、同じインスタンスで複数のアクションを実行することもできます。詳細については、「[アクション間でのコンピューティングの共有する](compute-sharing.md)」を参照してください。

対応する UI: *[なし]*

## Type
<a name="lam.invoke.computetype"></a>

(*LambdaInvoke*/Compute/**Type**)

([Compute](#lam.invoke.computename) が含まれている場合は必須)

コンピューティングエンジンのタイプです。次のいずれかの値を使用できます。
+ **EC2** (ビジュアルエディタ) または `EC2` (YAML エディタ)

  アクション実行時の柔軟性を目的として最適化されています。
+ **Lambda** (ビジュアルエディタ) または `Lambda` (YAML エディタ)

  アクションの起動速度を最適化しました。

コンピューティングタイプの詳細については、「[コンピューティングタイプ](workflows-working-compute.md#compute.types)」を参照してください。

対応する UI: [設定] タブ/**[コンピューティングタイプ]**

## Fleet
<a name="lam.invoke.computefleet"></a>

(*LambdaInvoke*/Compute/**Fleet**)

(オプション)

ワークフローまたはワークフローアクションを実行するマシンまたはフリートを指定します。オンデマンドフリートでは、アクションが開始すると、ワークフローは必要なリソースをプロビジョニングし、アクションが完了するとマシンは破棄されます。オンデマンドフリートの例: `Linux.x86-64.Large`、`Linux.x86-64.XLarge`。オンデマンドフリートの詳細については、「[オンデマンドフリートのプロパティ](workflows-working-compute.md#compute.on-demand)」を参照してください。

プロビジョニングされたフリートでは、ワークフローアクションを実行するように専用マシンのセットを設定します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できます。プロビジョニングされたフリートの詳細については、「[プロビジョニングされたフリートのプロパティ](workflows-working-compute.md#compute.provisioned-fleets)」を参照してください。

`Fleet` を省略した場合、デフォルトは `Linux.x86-64.Large` です。

対応する UI: [設定] タブ/**[コンピューティングフリート]**

## Timeout
<a name="lam.invoke.timeout"></a>

(*LambdaInvoke*/**Timeout**)

(必須)

CodeCatalyst がアクションを終了するまでにアクションを実行できる時間を分単位 (YAML エディタ) または時間分単位 (ビジュアルエディタ) で指定します。最小値は 5 分で、最大値は [CodeCatalyst のワークフローのクォータ](workflows-quotas.md) で記述されています。デフォルトのタイムアウトは、最大タイムアウトと同じです。

対応する UI: [設定] タブ/**[タイムアウト - オプション]**

## Inputs
<a name="lam.invoke.inputs"></a>

(*LambdaInvoke*/**Inputs**)

(必須)

この `Inputs` セクションは、ワークフローの実行中に**AWS Lambda 呼び出し**アクションに必要なデータを定義します。

**注記**  
**AWS Lambda 呼び出し**アクションごとに 1 つの入力 (ソースまたはアーティファクト) のみが許可されます。変数はこの合計にはカウントされません。

対応する UI: **[入力] タブ**

## Sources
<a name="lam.invoke.inputs.sources"></a>

(*LambdaInvoke*/Inputs/**Sources**)

([RequestPayloadFile](#lam.invoke.request.payload.file) が指定されている場合は必須)

リクエストペイロード JSON ファイルを **AWS Lambda 呼び出し**アクションに渡したい場合で、このペイロードファイルがソースリポジトリに格納されている場合は、そのソースリポジトリのラベルを指定します。現在サポートされているラベルは、`WorkflowSource` のみです。

リクエストペイロードファイルがソースリポジトリに含まれていない場合、別のアクションによって生成されたアーティファクトに存在する必要があります。

ペイロードの詳細については、「[RequestPayloadFile](#lam.invoke.request.payload.file)」を参照してください。

**注記**  
ペイロードファイルを指定する代わりに、`RequestPayload` プロパティを使用してペイロードの JSON コードをアクションに直接追加できます。詳細については、「[RequestPayload](#lam.invoke.request.payload)」を参照してください。

sources の詳細については、「[ワークフローへのソースリポジトリの接続](workflows-sources.md)」を参照してください。

対応する UI: [入力] タブ/**[ソース - オプション]**

## Artifacts - input
<a name="lam.invoke.inputs.artifacts"></a>

(*LambdaInvoke*/Inputs/**Artifacts**)

([RequestPayloadFile](#lam.invoke.request.payload.file) が指定されている場合は必須)

リクエストペイロード JSON ファイルを**AWS Lambda 呼び出し**アクションに渡したい場合で、このペイロードファイルが前のアクションの[出力アーティファクト](build-action-ref.md#build.outputs.artifacts)に含まれている場合は、ここでそのアーティファクトを指定します。

ペイロードの詳細については、「[RequestPayloadFile](#lam.invoke.request.payload.file)」を参照してください。

**注記**  
ペイロードファイルを指定する代わりに、`RequestPayload` プロパティを使用してペイロードの JSON コードをアクションに直接追加できます。詳細については、「[RequestPayload](#lam.invoke.request.payload)」を参照してください。

アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

対応する UI: [設定] タブ/**[アーティファクト - オプション]**

## Variables - input
<a name="lam.invoke.inputs.variables"></a>

(*LambdaInvoke*/Inputs/**Variables**)

(オプション)

アクションで使用できるようにしたい入力変数を定義する名前と値のペアのシーケンスを指定します。変数名に使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、変数名で特殊文字とスペースを有効にすることはできません。

変数の詳細 (例を含む) については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

対応する UI: [入力] タブ/**[変数 - オプション]**

## Environment
<a name="lam.invoke.environment"></a>

(*LambdaInvoke*/**Environment**)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境で指定された AWS アカウント およびオプションの Amazon VPC に接続します。アクションは、環境で指定されたデフォルトの IAM ロールを使用して に接続し AWS アカウント、[Amazon VPC 接続](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html)で指定された IAM ロールを使用して Amazon VPC に接続します。

**注記**  
デフォルトの IAM ロールにアクションに必要なアクセス許可がない場合は、別のロールを使用するようにアクションを設定できます。詳細については、「[アクションの IAM ロールの変更](deploy-environments-switch-role.md)」を参照してください。

環境タグ付けの詳細については、「[AWS アカウント と VPCs へのデプロイ](deploy-environments.md)」と「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。

対応する UI: [設定] タブ/**[環境]**

## Name
<a name="lam.invoke.environment.name"></a>

(*LambdaInvoke*/Environment/**Name**)

([Environment](#lam.invoke.environment) が含まれている場合は必須)

アクションに関連付ける既存の環境の名前を指定します。

対応する UI: [設定] タブ/**[環境]**

## Connections
<a name="lam.invoke.environment.connections"></a>

(*LambdaInvoke*/Environment/**Connections**)

(新しいバージョンのアクションでは任意。古いバージョンでは必須)

アクションに関連付けるアカウント接続を指定します。`Environment` で最大 1 つのアカウント接続を指定できます。

アカウント接続を指定しない場合:
+ アクションは、CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトの IAM ロールを使用します。アカウント接続とデフォルトの IAM ロールを環境に追加する方法については、「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。
+ デフォルトの IAM ロールには、アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションの YAML 定義ドキュメントの **[ロール]** プロパティの説明を参照してください。

アカウント接続の詳細については、「[接続された AWS リソースへのアクセスを許可する AWS アカウント](ipa-connect-account.md)」を参照してください。アカウント接続を環境に追加する方法については、「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[AWS アカウント接続]**

## Name
<a name="lam.invoke.environment.connections.name"></a>

(*LambdaInvoke*/Environment/Connections/**Name**)

([Connections](#lam.invoke.environment.connections) が含まれている場合は必須)

アカウント接続の名前を指定します。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[AWS アカウント接続]**

## Role
<a name="lam.invoke.environment.connections.role"></a>

(*LambdaInvoke*/Environment/Connections/**Role**)

([Connections](#lam.invoke.environment.connections) が含まれている場合は必須)

**AWS Lambda 呼び出し**アクションが Lambda 関数へのアクセス AWS と呼び出しに使用する IAM ロールの名前を指定します。[ロールを CodeCatalyst スペース に追加](ipa-connect-account-addroles.md)し、ロールに次のポリシーが含まれていることを確認します。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの [[環境]](deploy-environments.md) に記載されているデフォルトの IAM ロールを使用します。環境でデフォルトのロールを使用する場合は、次のポリシーがあることを確認してください。
+ 以下のアクセス許可ポリシー:
**警告**  
アクセス許可は、次のポリシーに示すアクセス許可に制限します。範囲の広いアクセス許可を持つロールを使用すると、セキュリティリスクが発生する可能性があります。
+ 次のカスタム信頼ポリシー:

**注記**  
必要に応じて、このアクションで `CodeCatalystWorkflowDevelopmentRole-spaceName` ロールを使用できます。このロールの詳細については、「[アカウントとスペース用の **CodeCatalystWorkflowDevelopmentRole-*spaceName*** ロールを作成する](ipa-iam-roles.md#ipa-iam-roles-service-create)」を参照してください。`CodeCatalystWorkflowDevelopmentRole-spaceName` ロールにはフルアクセス許可があり、セキュリティ上のリスクをもたらす可能性があることを理解してください。このロールは、セキュリティが懸念されないチュートリアルやシナリオでのみ使用することをお勧めします。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[ロール]**

## Configuration
<a name="lam.invoke.configuration"></a>

(*LambdaInvoke*/**Configuration**)

(必須)

アクションの設定プロパティを定義できるセクション。

対応する UI: **[設定]** タブ

## Function
<a name="lam.invoke.function"></a>

(*LambdaInvoke*/Configuration/**Function**)

(必須)

このアクションが呼び出す AWS Lambda 関数を指定します。関数名または Amazon リソースネーム (ARN) を指定できます。関数名または ARN は、Lambda コンソールで確認できます。

**注記**  
Lambda 関数が存在する AWS アカウントは、 で指定されたアカウントとは異なる場合があります`Connections:`。

対応する UI: [設定] タブ/**[関数]**

## AWSRegion
<a name="lam.invoke.region"></a>

(*LambdaInvoke*/Configuration/**AWSRegion**)

(必須)

 AWS Lambda 関数が存在する AWS リージョンを指定します。リージョンコードの一覧については、「*AWS 全般のリファレンス*」の「[Regional endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)」を参照してください。

対応する UI: [設定] タブ/**[送信先バケット - オプション]**

## RequestPayload
<a name="lam.invoke.request.payload"></a>

(*LambdaInvoke*/Configuration/**RequestPayload**)

(オプション)

リクエストペイロードを **AWS Lambda 呼び出し**アクションに渡す場合は、JSON 形式でリクエストペイロードをここで指定します。

リクエストペイロードの例:

```
'{ "key": "value" }'
```

Lambda 関数にリクエストペイロードを渡さない場合は、このプロパティを省略します。

**注記**  
`RequestPayload` または `RequestPayloadFile` を指定できます。両方を指定することはできません。

リクエストペイロードの詳細については、「*AWS Lambda API リファレンス*」の「[Invoke](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)」トピックを参照してください。

対応する UI: [設定] タブ/**[リクエストペイロード - オプション]**

## RequestPayloadFile
<a name="lam.invoke.request.payload.file"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(オプション)

リクエストペイロードを **AWS Lambda 呼び出し**アクションに渡す場合は、ここでこのリクエストペイロードファイルのパスを指定します。ファイルは JSON 形式である必要があります。

リクエストペイロードファイルは、ソースリポジトリまたは前のアクションのアーティファクトに置くことができます。ファイルパスは、ソースリポジトリまたはアーティファクトのルートを基準としています。

Lambda 関数にリクエストペイロードを渡さない場合は、このプロパティを省略します。

**注記**  
`RequestPayload` または `RequestPayloadFile` を指定できます。両方を指定することはできません。

リクエストペイロードファイルの詳細については、「*AWS Lambda API リファレンス*」の「[Invoke](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)」トピックを参照してください。

対応する UI: [設定] タブ/**[リクエストペイロードファイル - オプション]**

## ContinueOnError
<a name="lam.invoke.continue"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(オプション)

呼び出した AWS Lambda 関数が失敗した場合でも、**AWS Lambda 呼び出し**アクションを成功としてマークするかどうかを指定します。Lambda が失敗したにもかかわらず、ワークフロー内の後続のアクションを開始できるように、このプロパティを `true` に設定することを検討してください。

デフォルトでは、Lambda 関数が失敗した場合、アクションは失敗します (ビジュアルエディタでは「off」、YAML エディタでは「`false`」)。

対応する UI: [設定] タブ/**[エラー発生時に続行]**

## LogType
<a name="lam.invoke.log.type"></a>

(*LambdaInvoke*/Configuration/**LogType**)

(オプション)

呼び出し後に Lambda 関数からのレスポンスにエラーログを含めるかどうかを指定します。このログは、CodeCatalyst コンソールの **Lambda 呼び出し**アクションの **[ログ]** タブで表示できます。可能な値は以下のとおりです。
+ `Tail` – ログを返す
+ `None` – ログを返さない

デフォルトでは **[Tail]** に設定されています。

ログタイプの詳細については、「*AWS Lambda API リファレンス*」の「[Invoke](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)」トピックを参照してください。

ログの表示の詳細については、「[ワークフロー実行のステータスと詳細の表示](workflows-view-run.md)」を参照してください。

対応する UI: [設定] タブ/**[ログタイプ]**

## ResponseFilters
<a name="lam.invoke.response.filters"></a>

(*LambdaInvoke*/Configuration/**ResponseFilters**)

(オプション)

Lambda レスポンスペイロードのどのキーを出力変数に変換するかを指定します。その後、ワークフロー内の後続のアクションで出力変数を参照できます。CodeCatalyst における変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

例えば、レスポンスペイロードが次のような場合:

```
responsePayload = {
  "name": "Saanvi",
  "location": "Seattle",
  "department": {
    "company": "Amazon",
    "team": "AWS"
  }
}
```

...そして、レスポンスフィルターは次のような場合:

```
Configuration:
  ...
  ResponseFilters: '{"name": ".name", "company": ".department.company"}'
```

...アクションは次の出力変数を生成します。


| キー | 値 | 
| --- | --- | 
|  名前  |  Saanvi  | 
|  company  |  Amazon  | 

その後、後続のアクションで `name` 変数と `company` 変数を参照できます。

`ResponseFilters` でキーを指定しない場合、アクションは Lambda レスポンスの各最上位キーを出力変数に変換します。詳細については、「[「AWS Lambda 呼び出し」変数](lam-invoke-action-variables.md)」を参照してください。

レスポンスフィルターを使用して、生成された出力変数を実際に使用するもののみに制限することを検討してください。

対応する UI: [設定] タブ/**[レスポンスフィルター - オプション]**

## Outputs
<a name="lam.invoke.outputs"></a>

(*LambdaInvoke*/**Outputs**)

(オプション)

ワークフローの実行中にアクションによって出力されるデータを定義します。

対応する UI: **[出力]** タブ

## Artifacts
<a name="lam.invoke.outputs.artifacts"></a>

(*LambdaInvoke*/Outputs/**Artifacts**)

(オプション)

アクションによって生成されたアーティファクトを指定します。このアーティファクトは、他のアクションの入力として参照できます。

アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

対応する UI: [出力] タブ/[アーティファクト]/**[ビルドアーティファクト名]**

## Name
<a name="lam.invoke.outputs.artifacts.name"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Name**)

(オプション)

Lambda 関数によって返される Lambda レスポンスペイロードを含むアーティファクトの名前を指定します。デフォルト値は `lambda_artifacts` です。アーティファクトを指定しない場合、Lambda レスポンスペイロードをアクションのログで表示できます。これは、CodeCatalyst コンソールのアクションの **[ログ]** タブにあります。ログの表示の詳細については、「[ワークフロー実行のステータスと詳細の表示](workflows-view-run.md)」を参照してください。

対応する UI: [出力] タブ/[アーティファクト]/**[ビルドアーティファクト名]**

## Files
<a name="lam.invoke.outputs.artifacts.files"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Files**)

(オプション)

アーティファクトに含めるファイルを指定します。Lambda レスポンスペイロードファイルを含めるように `lambda-response.json` を指定する必要があります。

対応する UI: [出力] タブ/[アーティファクト]/**[ビルドで生成されるファイル]**