[英]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 ],
}
我有以下問題:
如何訪問 yaml 文件中的超時值。 這是語法嗎 - "Timeout": ${parameterName}
如何配置步驟 function 以便在達到超時且作業狀態處於待處理 state 時退出。
如何配置步驟 function 使其在超時到達且作業狀態為運行 state 時不退出。
誰能幫我配置這些?
- 如何訪問 yaml 文件中的超時值。 這是語法嗎 - "Timeout": ${parameterName}
可以為整個State 機器執行和任務 State設置TimeoutSeconds
integer 值。 TimeoutSeconds
不能在執行時動態插值。 它是 State 機器定義的固定部分。
- 如何配置步驟 function 以便在達到超時且作業狀態處於待處理 state 時退出。
Task
狀態具有可選的Retry
和Catch
配置來處理錯誤,包括States.Timeout
錯誤。 State 機器超時導致執行失敗。
- 如何配置步驟 function 使其在超時到達且作業狀態為運行 state 時不退出。
看上面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.