ランブックでのタイムアウトの処理 - AWS Systems Manager

ランブックでのタイムアウトの処理

timeoutSeconds プロパティはオートメーションのすべてのアクションで共有されます。このプロパティを使用して、アクションの実行タイムアウト値を指定できます。さらに、アクションのタイムアウトがオートメーションと全体的な実行ステータスに与える影響を変更できます。そのためには、アクションの onFailure および isCritical 共有プロパティも定義します。

たとえば、ユースケースによっては、アクションがタイムアウトした場合に、オートメーションが別のアクションを続行し、オートメーションの全体的なステータスに影響を与えないようにすることもできます。この例では、timeoutSeconds プロパティを使用して、アクションがタイムアウトするまでの待機時間を指定しています。次に、タイムアウトが発生した場合にオートメーションが続行するアクション (ステップ) を指定します。デフォルト値の step:step_name ではなく、onFailure プロパティの Abort 形式の値を指定します。デフォルトでは、アクションがタイムアウトした場合、オートメーションの実行ステータスは Timed Out になります。タイムアウトが オートメーションの実行ステータスに影響を与えないようにするには、false プロパティに isCritical を指定します。

以下の例では、このシナリオで説明されているアクションの共有プロパティを定義する方法を示しています。

YAML
- name: verifyImageAvailability action: 'aws:waitForAwsResourceProperty' timeoutSeconds: 600 isCritical: false onFailure: 'step:getCurrentImageState' inputs: Service: ec2 Api: DescribeImages ImageIds: - '{{ createImage.newImageId }}' PropertySelector: '$.Images[0].State' DesiredValues: - available nextStep: copyImage
JSON
{ "name": "verifyImageAvailability", "action": "aws:waitForAwsResourceProperty", "timeoutSeconds": 600, "isCritical": false, "onFailure": "step:getCurrentImageState", "inputs": { "Service": "ec2", "Api": "DescribeImages", "ImageIds": [ "{{ createImage.newImageId }}" ], "PropertySelector": "$.Images[0].State", "DesiredValues": [ "available" ] }, "nextStep": "copyImage" }

オートメーションのすべてのアクションで共有されるプロパティの詳細については、「すべてのアクションで共有されるプロパティ」を参照してください。