5

我想知道如何使API網關調用一個步驟功能並執行它。如何通過API網關調用AWS Step功能?

+1

重複:http://stackoverflow.com/questions/41113666/how-to-invoke-aws-step-function-using-api-gateway – Brandon

+0

我認爲這個問題是不是更有價值其他,因爲有一個關於如何從api網關創建aws sf調用的解釋 – omalave

+0

[如何使用API​​網關調用AWS step功能?](https://stackoverflow.com/questions/41113666/how-to- invoke-aws-step-function-using-api-gateway) –

回答

4

您可以創建一個帶有Integration type: AWS Service的API網關端點,並將其設置爲調用所需的步驟功能。

如果你想使用API​​網關,這樣你可以控制你的步驟的曝光功能端點,您可以用政策只授予該端點訪問創建一個新的IAM用戶(只編程訪問)例如:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "execute-api:Invoke"   
     ], 
     "Resource": [ 
     "arn:aws:execute-api:us-east-1:my-aws-account-id:my-api-id/my-stage/GET/my-resource-path" 
     ] 
    } 
    ] 
} 
+0

這種方法確實對我有用。你能解釋倒票嗎?如果您認爲這篇文章可以改進,請考慮添加評論。 –

+0

您是如何配置HTTP集成來調用Step Function API的? AFAIK,這不會工作,因爲請求不會與SigV4簽署。如果您將集成類型更改爲AWS,這將是正確的答案。 –

+0

謝謝瑞安,編輯我的答案。這是個好消息!在撰寫本文時,我們沒有選擇直接將步驟功能與API網關集成,應該這樣做。 –

0

請考慮創建支持APIGw端點並通過代碼調用AWS StepFunctions的AWS Lambda函數。我們使用這種方法,因爲我們的用例允許API端點參數指定我們需要執行的幾個StepFunctions中的哪一個。

不可否認,它是「更多的代碼」;我們希望AWS詳細闡述StepFunctions,以便它們可以被整個AWS資源事件主機觸發。

8

API網關新增支持步功能當前。現在您可以通過API網關控制檯創建AWS服務集成。

  • 集成類型:AWS服務
  • AWS服務:步驟功能
  • HTTP方法:POST
  • 動作類型:使用動作名稱
  • 行動:StartExecution
  • 執行角色:作用開始執行
  • 接頭:

    X-AMZ-目標 - > 'AWSStepFunctions.StartExecution'
    內容類型 - >「應用程序/ x-AMZ-json- 1.0'

  • 身體映射模板/請求有效載荷:

    { 「輸入」: 「串」, 「名稱」: 「串」, 「stateMachineArn」:「〜應變G」 }

+0

你對此錯誤有任何線索嗎? { 「__type」: 「com.amazonaws.swf.service.v2.model#InvalidArn」, 「消息」: 「無效的阿恩: '​​無效的ARN前綴字符串'」 } – omalave

+0

我猜你定義ARN在'''stateMachineArn'''中無效。你能證實嗎? –

+0

那麼,阿恩是好的,當我在api網關控制檯測試它,通過發送相同的json所有工作正常,但郵遞員說錯誤,並在我的應用程序,任何想法? – omalave

相關問題