説明
ROS スタックには、リソースを定義するテンプレートが必要です。テンプレートなしで名前やポリシーだけを指定しても、作成に必要な定義は完成しません。
想定される影響
- スタック作成が失敗したり、必要なインフラをデプロイできなかったりする場合があります。
- 実際のデプロイ内容が分からず、コードレビューや運用自動化に混乱が生じるおそれがあります。
対処方法
template_body または template_url でレビュー済みのテンプレートを指定してください。リソースとパラメーターを検証し、変更履歴を管理してください。スタックポリシーがデプロイ内容と保護要件に合うかも別途確認してください。
例
変更前はテンプレートがない不完全な構成です。変更後の template_body は形式バージョンだけを示す抜粋なので、実際のデプロイにはリソース定義も含める必要があります。
変更前
hcl
resource "alicloud_ros_stack" "example" {
stack_name = "tf-testaccstack"
stack_policy_body = <<EOF
{
"Statement": [{
"Action": "Update:Delete",
"Resource": "*",
"Effect": "Allow",
"Principal": "*"
}]
}
EOF
}
変更後
hcl
resource "alicloud_ros_stack" "example" {
stack_name = "tf-testaccstack"
template_body = <<EOF
{
"ROSTemplateFormatVersion": "2015-09-01"
}
EOF
}
スタックポリシーはテンプレートの代わりにはなりません。template_body を指定するだけで、リソースの設定が正しいことや保護ポリシーが十分であることは保証されません。