AWS Lambda
AWS Lambdaは、サーバーのプロビジョニングや管理を行わずにコードを実行できるスケーラブルなコンピューティングサービスです。 AWS Lambdaを使用すると、さまざまなリアルタイムのサーバーレスデータ処理システムをすばやく簡単に構築できます。 次のいずれかの方法を使用して、AWS LambdaをWorkatoに接続する必要があります。
- IAMユーザーアクセスキー認証
- IAMロール認証
レガシーアクセスキー認証
アクセスキー認証はレガシー認証形式です。 IAMロール認証の使用を強くお勧めします。
IAMユーザーアクセスキーを使用してAWS Lambdaに接続する
IAMユーザーアクセスキーを使用したAWS Lambdaへの接続は許可されていますが、非推奨であることに注意してください。 この認証方法では、ユーザー認証情報を提供する必要があります。
アクセスキーの入力フィールド
- アクセスキー認証のフィールド。
- コネクション名
- このコネクションには、接続先のAWS Lambdaインスタンスを識別できる一意の名前を付けます。
- 場所
- コネクションを必要とするWorkatoプロジェクト。
- 認証タイプ
- アクセスキーを選択します。
- アクセスキーID
- ユーザーのID。
- シークレットアクセスキー
- ユーザーのシークレット。
- 地域
- このAWS Lambdaアカウントのリージョンを指定します。
認可方法 - Access key
IAMユーザーポリシーの要件
Workatoは、このIAMユーザーとしてAWS Lambdaアカウントで操作を実行します。 トリガーとアクションのすべてのセットを使用するには、IAMユーザーにlambda:ListFunctions権限が必要です。
Workato用ポリシーの作成手順については、IAM権限ポリシーの作成を参照してください。
IAMロールを使用してAWS Lambdaに接続する
Workato IAMロールをプロビジョニングしてAWS Lambdaに接続できます。 専用のIAMプロファイルをプロビジョニングすると、AWS Lambdaインスタンスの所有者はAWSセキュリティ認証情報を共有せずに、WorkatoにAWSリソースへのアクセス権を付与できます。 また、サードパーティアプリケーション(Workatoなど)によって許可される、特定のAWSフォルダおよびアクションへの制御されたアクセスを含む、権限境界の維持にも役立ちます。
Workato用のIAMロールを作成し、Amazonリソースネーム(ARN)を取得する方法については、AWS向けIAMロールベース認証ページを参照してください。
IAMロールの入力フィールド
- IAMロール認証のフィールド。
- コネクション名
- このコネクションには、接続先のAWS Lambdaインスタンスを識別できる一意の名前を付けます。
- 場所
- コネクションを必要とするWorkatoプロジェクト。
- 認証タイプ
- IAMロールを選択します。
- IAMロールARN
- IAMロールARN。
注: Workatoは一意の外部ID(例:workato-user-84762)を生成します。 この値はWorkatoユーザーごとに異なり、AWS LambdaでIAMロールを作成するときに指定する必要があります。 - 地域
- このAWS Lambdaアカウントのリージョンを指定します。
認可方法 - IAMロール
出力スキーマの定義
Lambda関数をトリガーまたはアクションとして使用する場合は、呼び出し可能な各関数の出力スキーマを定義する必要があります。 各関数のレスポンスは可変です。 このサンプル出力スキーマは、出力データツリーの構築に使用されます。 このデータツリーにより、Lambda関数から返されたデータを後続のレシピアクションで使用できます。
出力スキーマを定義するには、Function output入力フィールドにサンプルレスポンスを入力します。 これは、出力のデータ構造とスキーマを記述する必要があります。 この入力フィールドを設定する方法は2つあります。
- サンプルJSONの使用
- スキーマデザイナーウィジェットを使用してスキーマを手動で定義する
Function output入力フィールド
次の例では、サンプルJSONを使用した出力スキーマの定義に焦点を当てます。 Use JSONをクリックすると、次のスキーマデザイナーウィジェットが表示されます。
スキーマデザイナーウィジェット
JSONには、一般的な形式が2つあります。
- JSON関数出力
- 単一のプリミティブデータ
JSONレスポンス
Workatoでは、すべてのデータをキーと値のペアとして表す必要があります。 これは、それぞれのキーを使用して値をマッピングできるようにするためです。 JSONデータ形式は良い例です。 AWS Lambdaコネクターでは、すべてのレスポンスJSONを親responseオブジェクトでラップする必要があります。 レスポンスは次の例のようになります。
{
"id": 123,
"name": "Ee Shan",
"email": "[email protected]"
}親"response"オブジェクトでラップします。
{
"response": {
"id": 123,
"name": "Ee Shan",
"email": "[email protected]"
}
}出力JSONを挿入し、Nextをクリックしてデータを確認してから、Generateをクリックします。 これにより、次の出力データツリーが生成されます。
JSON本文出力データツリー
プリミティブデータレスポンス
Lambda関数が単一の文字列、整数、単純なブール値などの非JSONデータ構造を返す場合は、親"response"オブジェクトでラップする必要があります。 次の関数例は、IDの整数値を返します。 サンプルレスポンスは次のようになります。
4990親"response"オブジェクトでラップします。
{
"response": 4990
}出力JSONを挿入し、Generateをクリックします。 これにより、次の出力データツリーが生成されます。
プリミティブレスポンス出力データツリー
Last updated: