8

Amazon のドキュメントによると、ステップ関数は HTTP API を使用して呼び出すことができます。

Step Functions は、Step Functions コンソール、AWS SDK、または HTTP API にアクセスして使用できます。

詳細な情報を検索してみましたが、良い情報が見つからないようです。Lambda 関数を呼び出す方法と同様に、API ゲートウェイを使用して AWS ステップ関数を呼び出す方法を知っている人はいますか?

4

4 に答える 4

4

これは「公式の」AWS の方法ではありません。これについては Erndob の回答を参照してください。

AWS の方法 (AWS 資格情報で各リクエストに署名する) の問題は、ほとんどの企業が API ゲートウェイを介して認証と承認を管理するための成熟した方法を既に備えており、(エンタープライズ アーキテクトとして言えば) の頭痛の種に対処したくないということです。これを AWS 資格情報レベルで複製します。

AWS は最終的に Step Functions と API Gateway を統合すると確信していますが、この記事の執筆時点 (1/17) では、おそらくこれが最も簡単な方法です。以下は、リクエストに署名する SDK の機能を活用するために私が作成した簡単な Lambda プロキシ関数です。

'use strict';

const AWS = require('aws-sdk');
const stepfunctions = new AWS.StepFunctions();

exports.handler = (event, context, callback) => {
    if(!event && event.action)
        callback("Error: 'action' is required.");
    if(!event && event.params)
        callback("Error: 'params' is required.");
    
    stepfunctions[event.action](event.params, function (err, data) {
        if (err) 
            console.log(err, err.stack);
        callback(err, data);
    });
};

Step Functions と対話するには、Lambda 特権を付与する必要があります。すべての操作へのフル アクセスを付与するには、新しいロールを作成し、次のポリシーをアタッチします。

  • AWSLambdaBasicExecutionRole
  • AWSStepFunctionsFullAccess

ここで、通常どおり API ゲートウェイ経由で呼び出されるように Lambda を構成し、2 つのプロパティを持つイベントを渡します。

そして、必ず API をロックダウンしてください! :-)

于 2017-01-20T22:38:22.553 に答える