翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation フックの概念
フックの理解と使用には、次の用語と概念が重要です AWS CloudFormation 。
フック
フックには、CloudFormation がスタックまたは特定のリソースを作成、更新、または削除する直前に呼び出されるコードが含まれています。また、変更セットの作成オペレーション中に呼び出すこともできます。フックは、CloudFormation がプロビジョニングしようとしているテンプレート、リソース、または変更セットを検査できます。さらに、Cloud Control API が特定のリソースを作成、更新、または削除する直前にフックを呼び出すことができます。
フックロジックで定義されている組織ガイドラインに準拠していない設定がフックによって識別された場合は、WARN
ユーザーまたは のいずれかを選択してFAIL
、CloudFormation がリソースをプロビジョニングできないようにすることができます。
フックには次の特性があります。
-
プロアクティブ検証 – 非準拠のリソースを作成、更新、または削除する前に特定することで、リスク、運用オーバーヘッド、コストを削減します。
-
自動適用 — 非準拠のリソースが CloudFormation によってプロビジョニングされない AWS アカウント ように、 で強制します。
失敗モード
フックロジックは成功または失敗を返す可能性があります。成功の応答により、オペレーションを続行できます。非準拠のリソースに障害が発生すると、次のような結果になる可能性があります。
-
FAIL
– プロビジョニングオペレーションを停止します。 -
WARN
– プロビジョニングが警告メッセージで続行できるようにします。
WARN
モードでフックを作成することは、スタックオペレーションに影響を与えずにフックの動作をモニタリングする効果的な方法です。まず、 WARN
モードでフックをアクティブ化して、影響を受けるオペレーションを理解します。潜在的な影響を評価したら、フックを FAIL
モードに切り替えて、非準拠のオペレーションの防止を開始できます。
フックターゲット
フックターゲットは、フックが評価するオペレーションを指定します。これらは、以下のオペレーションにすることができます。
-
CloudFormation でサポートされているリソース (
Resources
) -
スタックテンプレート (
STACK
) -
変更セット (
CHANGE_SET
) -
Cloud Control API でサポートされているリソース (
CLOUD_CONTROL
)
フックが評価する最も広範なオペレーションを指定する 1 つ以上のターゲットを定義します。例えば、フックターゲットを作成して、すべての AWS リソースRESOURCES
をターゲットにし、すべてのスタックテンプレートSTACK
をターゲットにすることができます。また、フィルタを適用して、フックの範囲を、評価する正確なオペレーションに絞り込むこともできます。詳細については、AWS CloudFormation スタックレベルのフィルターをフックしますおよびAWS CloudFormation フックターゲットフィルターを参照してください。
ターゲットアクション
ターゲットアクションは、フックをトリガーするオペレーションのタイプです。アクションは、CREATE
、UPDATE
、または ですDELETE
。
注記
RESOURCE
、STACK
、CLOUD_CONTROL
フックターゲットを使用する場合、すべてのターゲットアクションが適用されます。CHANGE_SET
フックターゲットを使用する場合、 CREATE
アクションのみが適用されます。
フックハンドラー
カスタムフックの場合、これは評価を処理するコードです。これは、ターゲット呼び出しポイントと、フックが実行される正確なポイントを示すターゲットアクションに関連付けられます。これらの特定のポイントのロジックをホストするハンドラーを記述します。例えば、PRE
ターゲットアクションを持つCREATE
ターゲット呼び出しポイントはpreCreate
フックハンドラーを作成します。フックハンドラー内のコードは、一致するターゲット呼び出しポイントとサービスが関連するターゲットアクションを実行するときに実行されます。
有効な値: (preCreate
| preUpdate
| preDelete
)
重要
ステータスが になるスタックオペレーションでは、フックは呼び出UpdateCleanup
されません。たとえば、次の 2 つのシナリオでは、フックのpreDelete
ハンドラーは呼び出されません。
-
スタックは、テンプレートから 1 つのリソースを削除した後に更新されます。
-
更新タイプの置換のリソースが削除されます。