

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Auto Scaling グループでライフサイクルアクションを完了する
<a name="completing-lifecycle-hooks"></a>

Auto Scaling グループがライフサイクルイベントに応答する際、Auto Scaling グループはインスタンスを待機状態にしてイベント通知を送信します。インスタンスが待機状態にあるときに、カスタムアクションを実行できます。

ライフサイクルアクションを`CONTINUE` の結果で完了させることで、タイムアウト期間が経過する前に終了させることができます。ライフサイクル アクションを完了しない場合、タイムアウト期間が終了すると、ライフサイクル フックは**デフォルトの結果**コードに指定したステータスになります。

**Topics**
+ [ライフサイクルアクションを完了する (手動)](#completing-lifecycle-hooks-aws-cli)
+ [ライフサイクルアクションを完了する (自動)](#completing-lifecycle-hooks-automatic)

## ライフサイクルアクションを完了する (手動)
<a name="completing-lifecycle-hooks-aws-cli"></a>

次の手順はコマンドライン インターフェイスに関するもので、コンソールではサポートされていません。インスタンス ID や Auto Scaling グループの名前など、置き換える必要がある情報は、斜体で表示されます。

**ライフサイクルアクションを完了するには (AWS CLI)**

1. カスタムアクション完了までにさらに時間が必要な場合は、[record-lifecycle-action-heartbeat](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html) コマンドを使用してタイムアウト時間を再開し、インスタンスを待機状態に維持します。例えば、タイムアウト期間が 1 時間に設定されており、30 分後にこのコマンドを呼び出す場合、インスタンスはさらに 1 時間 (合計で 90 分) 待機状態のままになります。

   以下のコマンドに示すように、[通知](prepare-for-lifecycle-notifications.md#notification-message-example)と共に受信したライフサイクルアクショントークンを指定できます。

   ```
   aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \
     --auto-scaling-group-name my-asg --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635
   ```

   または、以下のコマンドに示すように、[通知](prepare-for-lifecycle-notifications.md#notification-message-example)とともに受信したインスタンスの ID を指定できます。

   ```
   aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \
     --auto-scaling-group-name my-asg --instance-id i-1a2b3c4d
   ```

1. [[complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)] コマンドを使用してタイムアウト期間が終了する前にカスタムアクションを終了すると、Auto Scaling グループは起動を継続するか、インスタンスを終了することができます。以下のコマンドに示すように、ライフサイクルアクショントークンを指定できます。

   ```
   aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \
     --lifecycle-hook-name my-launch-hook --auto-scaling-group-name my-asg \
     --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635
   ```

   または、以下のコマンドに示すように、インスタンスの ID を指定できます。

   ```
   aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \
     --instance-id i-1a2b3c4d --lifecycle-hook-name my-launch-hook \
     --auto-scaling-group-name my-asg
   ```

## ライフサイクルアクションを完了する (自動)
<a name="completing-lifecycle-hooks-automatic"></a>

起動後にインスタンスを設定するユーザーデータスクリプトがある場合は、ライフサイクルアクションを手動で完了する必要はありません。[complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html) コマンドをスクリプトに追加します。スクリプトは、インスタンスのメタデータからインスタンス ID を取得し、ブートストラップスクリプトが正常に完了したときに Amazon EC2 Auto Scaling に通知します。

まだそうしていない場合は、インスタンスメタデータからインスタンスのインスタンス ID を取得するためのスクリプトを更新します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスメタデータを取得する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)」を参照してください。

Lambda を使用する場合は、カスタムアクションが成功した際にインスタンスのライフサイクルを続行できるように、関数のコードにコールバックを設定することもできます。詳細については、「[チュートリアル:Lambda 関数を呼び出すライフサイクルフックの設定](tutorial-lifecycle-hook-lambda.md)」を参照してください。