簡體   English   中英

AWS:設置步驟 function 超時

[英]AWS: Set step function timeout

我是 AWS 新手。 我們有一個如下定義的 yaml 文件來運行我們的步驟 function。

我想在 AWS 參數存儲中為步驟 function 設置超時並在文件中引用它。 我從 AWS 控制台創建了一個參數。 但我不確定如何在 yaml 文件中引用它。 閱讀文檔后,我了解到它在“States”屬性下聲明為“Timeout”。

xxxStateMachine:
    Type: AWS::StepFunctions::StateMachine
    Properties:
      StateMachineName: !Sub ${AWS::StackName}-StateMachine
      RoleArn: !Sub arn:aws:iam::${AWS::AccountId}:role/roleName
      DefinitionString:
        !Sub
        - |-
          {
            "Comment": "Calls xxx state update job invoker lambda",
            "StartAt": "xxxCheckJob",
            "States": {
              "Timeout": ${},    // IS this where the timeout has to be defined?
              "xxxCheckJob": {
                    "Type": "Task",
                    "Resource": "${lambdaDArn}",
                    "ResultPath": "$.isBusinessDay",
                    "OutputPath": "$",
                    "Next": "xxxCheckJobStatus"
              },
              "businessDayCheckJobStatus": {
                    "Type": "Choice",
                    "Choices": [
                  {
                    "Variable": "$.x",
                    "BooleanEquals": true,
                    "Next": "xxxStatexxJob"
                      },
                  {
                    "Not": {
                      "Variable": "$.isBuxxy",
                      "BooleanEquals": true
                    },
                    "Next": "SuccessState"
                      }
                ]
                },
                "xxxStateUpdateJob": {
                    "Type": "Task",
                    "Resource": "${lambdaSArn}",
                    "ResultPath": "$.detail.requestParameters.invocationStatus",
                    "OutputPath": "$.detail.requestParameters",
                    "Next": "xxxStateUpdateJobStatus"
                },
                "xxxStateUpdateJobStatus": {
                    "Type": "Task",
                    "Resource": "${lambdaJrn}",
                    "Parameters": {
                        "jobName.$": "$.invocationStatus.jobId"
                    },
                    "ResultPath": "$.jobStatus",
                    "OutputPath": "$",
                    "Next": "checkJobStatus"
                },
                "checkJobStatus": {
                    "Type": "Choice",
                    "Choices": [
                  {
                    "Variable": "$.jobStatus.status",
                    "StringEquals": "FAILED",
                    "Next": "FailState"
                      },
                  {
                    "Variable": "$.jobStatus.status",
                    "StringEquals": "SUCCEEDED",
                    "Next": "SuccessState"
                      },
                  {
                    "Not": {
                      "Variable": "$.jobStatus.status",
                      "StringEquals": "SUCCEEDED"
                    },
                    "Next": "Wait X Seconds"
                      }
                ]
                },
                "Wait X Seconds": {
                    "Type": "Wait",
                    "Seconds": 20,
                    "Next": "xxxStateUpdateJobStatus"
                },
                "SuccessState": {
                    "Type": "Succeed"
                },
                "FailState": {
                    "Type": "Fail",
                    "Cause": "Invalid response.",
                    "Error": "ErrorA"
                }
            }
          }
        - {lambdaArn: !GetAtt [ xx, Arn ],
           }

我有以下問題:

  1. 如何訪問 yaml 文件中的超時值。 這是語法嗎 - "Timeout": ${parameterName}

  2. 如何配置步驟 function 以便在達到超時且作業狀態處於待處理 state 時退出。

  3. 如何配置步驟 function 使其在超時到達且作業狀態為運行 state 時不退出。

誰能幫我配置這些?

  1. 如何訪問 yaml 文件中的超時值。 這是語法嗎 - "Timeout": ${parameterName}

可以為整個State 機器執行任務 State設置TimeoutSeconds integer 值。 TimeoutSeconds不能在執行時動態插值。 它是 State 機器定義的固定部分。

  1. 如何配置步驟 function 以便在達到超時且作業狀態處於待處理 state 時退出。

Task狀態具有可選的RetryCatch配置來處理錯誤,包括States.Timeout錯誤。 State 機器超時導致執行失敗。

  1. 如何配置步驟 function 使其在超時到達且作業狀態為運行 state 時不退出。

看上面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM