AWS Lambda 「呼び出し」アクション YAML - Amazon CodeCatalyst

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

AWS Lambda 「呼び出し」アクション YAML

以下は、AWS Lambda 呼び出しアクションYAMLの定義です。このアクションの使用方法については、「」を参照してくださいワークフローを使用した Lambda 関数の呼び出し

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

注記

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

# The workflow definition starts here. # See 最上位のプロパティ for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. LambdaInvoke_nn: 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~z、A~Z、0~9)、ハイフン (-)、アンダースコア (_) に制限されています。スペースは使用できません。引用符を使用してアクション名で特殊文字やスペースを有効にすることはできません。

デフォルト: Lambda_Invoke_Action_Workflow_nn

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

Identifier

(LambdaInvoke/Identifier)

(必須)

アクションを識別します。バージョンを変更しない限り、このプロパティを変更しないでください。詳細については、「使用するアクションバージョンの指定」を参照してください。

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

対応する UI: ワークフロー図/LambdaInvoke_nn/aws/lambda-invoke@v1 ラベル

DependsOn

(LambdaInvoke/DependsOn)

(オプション)

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

「依存」機能の詳細については、「」を参照してくださいシーケンスアクション

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

Compute

(LambdaInvoke/Compute)

(オプション)

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

対応する UI: なし

Type

(LambdaInvoke/Compute/Type)

( Computeが含まれている場合は必須)

コンピューティングエンジンのタイプ。次のいずれかの値を使用できます。

  • EC2 (ビジュアルエディタ) または EC2 (YAML エディタ)

    アクション実行中の柔軟性のために最適化されました。

  • Lambda (ビジュアルエディタ) または Lambda (YAML エディタ)

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

コンピューティングタイプの詳細については、「コンピューティングタイプ」を参照してください。

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

Fleet

(LambdaInvoke/Compute/Fleet)

(オプション)

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

プロビジョニングされたフリートでは、ワークフローアクションを実行するように一連の専用マシンを設定します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できます。プロビジョニングされたフリートの詳細については、「」を参照してくださいプロビジョニングされたフリートのプロパティ

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

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

Timeout

(LambdaInvoke/Timeout)

(必須)

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

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

Inputs

(LambdaInvoke/Inputs)

(必須)

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

注記

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

対応する UI: Inputs タブ

Sources

(LambdaInvoke/Inputs/Sources)

( RequestPayloadFileが指定されている場合は必須)

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

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

ペイロードファイルの詳細については、「」を参照してくださいRequestPayloadFile

注記

ペイロードファイルを指定する代わりに、 RequestPayloadプロパティを使用してペイロードのJSONコードを アクションに直接追加できます。詳細については、「RequestPayload」を参照してください。

sources の詳細については、「ソースリポジトリをワークフローに接続する」を参照してください。

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

Artifacts - input

(LambdaInvoke/Inputs/Artifacts)

( RequestPayloadFileが指定されている場合は必須)

リクエストペイロードJSONファイルをAWS Lambda 呼び出しアクションに渡し、このペイロードファイルが前のアクションの出力アーティファクトに含まれている場合は、ここでそのアーティファクトを指定します。

ペイロードファイルの詳細については、「」を参照してくださいRequestPayloadFile

注記

ペイロードファイルを指定する代わりに、 RequestPayloadプロパティを使用してペイロードのJSONコードを アクションに直接追加できます。詳細については、「RequestPayload」を参照してください。

アーティファクトの例などの詳細については、「」を参照してくださいアクション間でのアーティファクトとファイルの共有

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

Variables - input

(LambdaInvoke/Inputs/Variables)

(オプション)

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

例を含む変数の詳細については、「」を参照してくださいワークフローでの変数の使用

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

Environment

(LambdaInvoke/Environment)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境でVPC指定された AWS アカウント およびオプションの Amazon に接続します。アクションは、環境で指定されたデフォルトのIAMロールを使用して に接続し AWS アカウント、Amazon VPC接続で指定されたIAMロールを使用して Amazon に接続しますVPC。

注記

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

環境の詳細については、AWS アカウント と へのデプロイ VPCs「」および「」を参照してください環境を作成する

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

Name

(LambdaInvoke/Environment/Name)

( Environmentが含まれている場合は必須)

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

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

Connections

(LambdaInvoke/Environment/Connections)

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

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

アカウント接続を指定しない場合:

  • アクションは、 CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトのIAMロールを使用します。アカウント接続とデフォルトIAMロールを環境に追加する方法については、「」を参照してください環境を作成する

  • デフォルトのIAMロールには、 アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションYAMLの定義ドキュメントの「ロール」プロパティの説明を参照してください。

アカウント接続の詳細については、「」を参照してください接続された AWS リソースへのアクセスを許可する AWS アカウント。環境へのアカウント接続の追加については、「」を参照してください環境を作成する

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/ の内容 my-environment?/3 つのドットメニュー/スイッチロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ AWS アカウント接続

Name

(LambdaInvoke/Environment/Connections/Name)

( Connectionsが含まれている場合は必須)

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

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/ の内容 my-environment?/3 つのドットメニュー/スイッチロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ AWS アカウント接続

Role

(LambdaInvoke/Environment/Connections/Role)

( Connectionsが含まれている場合は必須)

AWS Lambda 呼び出しアクションが Lambda 関数へのアクセス AWS と呼び出しに使用するIAMロールの名前を指定します。スペース にロールを追加し CodeCatalyst 、ロールに次のポリシーが含まれていることを確認してください。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの 環境にリストされているデフォルトのIAMロールを使用します。環境でデフォルトロールを使用する場合は、次のポリシーがあることを確認してください。

  • 次のアクセス許可ポリシー:

    警告

    アクセス許可を次のポリシーに示すものに制限します。より広範なアクセス許可を持つロールを使用すると、セキュリティ上のリスクが生じる可能性があります。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:aws-account:function:function-name" } ] }
  • 次のカスタム信頼ポリシー:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
注記

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

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/ の内容 my-environment?/3 つのドットメニュー/スイッチロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ロール

Configuration

(LambdaInvoke/Configuration)

(必須)

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

対応する UI: 設定タブ

Function

(LambdaInvoke/Configuration/Function)

(必須)

このアクションが呼び出す AWS Lambda 関数を指定します。関数の名前、またはその Amazon リソースネーム () を指定できますARN。Lambda コンソールARNで または という名前を見つけることができます。

注記

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

対応する UI: 設定タブ/機能

AWSRegion

(LambdaInvoke/Configuration/AWSRegion)

(必須)

AWS Lambda 関数が存在する AWS リージョンを指定します。リージョンコードのリストについては、「」の「リージョンエンドポイント」を参照してくださいAWS 全般のリファレンス

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

RequestPayload

(LambdaInvoke/Configuration/RequestPayload)

(オプション)

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

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

'{ "key": "value" }'

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

注記

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

リクエストペイロードの詳細については、 AWS Lambda APIリファレンスの「Invoke」トピックを参照してください。

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

RequestPayloadFile

(LambdaInvoke/Configuration/RequestPayloadFile)

(オプション)

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

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

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

注記

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

リクエストペイロードファイルの詳細については、 AWS Lambda APIリファレンスの「Invoke」トピックを参照してください。

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

ContinueOnError

(LambdaInvoke/Configuration/RequestPayloadFile)

(オプション)

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

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

対応する UI: 設定タブ/エラーの続行

LogType

(LambdaInvoke/Configuration/LogType)

(オプション)

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

  • Tail – ログを返す

  • None – ログを返さない

デフォルトはテール です。

ログタイプの詳細については、「 AWS Lambda APIリファレンス」の「呼び出し」トピックを参照してください。

ログの表示の詳細については、「ワークフローの実行ステータスと詳細の表示」を参照してください。

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

ResponseFilters

(LambdaInvoke/Configuration/ResponseFilters)

(オプション)

出力変数に変換する Lambda レスポンスペイロードのキーを指定します。その後、ワークフロー内の後続のアクションで出力変数を参照できます。の変数の詳細については、 CodeCatalyst「」を参照してくださいワークフローでの変数の使用

例えば、レスポンスペイロードは次のようになります。

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

レスポンスフィルターは次のようになります。

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

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

キー

name

Saanvi

company

Amazon

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

でキーを指定しない場合ResponseFilters、 アクションは Lambda レスポンスの各トップレベルキーを出力変数に変換します。詳細については、「AWS Lambda 「呼び出し」変数」を参照してください。

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

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

Outputs

(LambdaInvoke/Outputs)

(オプション)

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

対応する UI: 出力タブ

Artifacts

(LambdaInvoke/Outputs/Artifacts)

(オプション)

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

アーティファクトの詳細については、「」を参照してくださいアクション間でのアーティファクトとファイルの共有

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

Name

(LambdaInvoke/Outputs/Artifacts/Name)

(オプション)

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

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

Files

(LambdaInvoke/Outputs/Artifacts/Files)

(オプション)

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

対応する UI: ビルドによって生成されたタブ/アーティファクト/ファイルを出力する