Не специфично для Azure, но, пройдя аналогичное упражнение, я предполагаю, что есть глобальные объекты, связанные с вашей учетной записью, а не со средой. Так обстоит дело в AWS с VPC, экземплярами и т. Д., Хотя такие элементы, как IAM (пользователь, роль, управление политикой ролей), принадлежат учетной записи, поэтому после небольшого следа и ошибки я придумал следующее в том же корне, что и dev, staging и prod .... есть суб-репозитории global, в основном для уменьшения объема изменений.
Все dev, stage, prod используют глобальный каталог через terraform_remote_state
, на самом деле dependency
, поскольку я использую terragrunt
, но его аналог.
HTH
tree global
global
├── cloud_watch_alarm.tf
├── dynamo_db
│ └── terragrunt.hcl
├── iam
│ ├── iam_groups.tf
│ ├── iam_instance_profile.tf
│ ├── iam_policies.tf
│ ├── iam_policy_attachment.tf
│ ├── iam_role_policies.tf
│ ├── iam_roles.tf
│ ├── iam_user_group_membership.tf
│ ├── iam_users.tf
│ ├── main.tf
│ ├── provider.tf
│ ├── terragrunt.hcl
│ └── variables.tf
├── main.tf
├── s3
│ ├── main.tf
│ ├── provider.tf
│ ├── s3-ohio.tf
│ ├── s3.tf
│ └── terragrunt.hcl
├── sns_topic_subscription.tf
├── sns_topic.tf
├── sqs.tf
├── terragrunt.hcl
└── variables.tf
РЕДАКТИРОВАТЬ: Увы, я не могу сказать, что моя практика лучше всего, я задал тот же вопрос и получил аналогичный ответ
person
ekydfejj
schedule
20.01.2020