Как использовать состояние терраформирования в другой лазурной подписке
Я развертываю лазурную инфраструктуру с Terraform. Состояние терраформирования будет храниться в подписке, которая будет отличаться от основной подписки развертывания. Я использую псевдоним в объявлении поставщика. Мой код terraform выглядит следующим образом:
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 2.38.0"
}
}
backend "azurerm" {
resource_group_name = "resourcegroup_name"
storage_account_name = "storageaccount_name"
container_name = "mystate"
key = "tfstatename1.tfstate"
}
}
provider "azurerm" {
features {}
}
provider "azurerm" {
features {}
alias = "second_subscription"
subscription_id = var.second_subscription_id
}
Состояние моего терраформирования должно храниться в подписке с псевдонимом.
Как я могу этого добиться?
1 ответ
Я не думаю, что конфигурация серверной части azurerm принимает данные из конфигурации поставщика azurerm. В какой-то степени можно сказать, что он применяет собственный механизм аутентификации. Тем не менее, у них есть некоторые общие функции: например, обе могут использовать контекст безопасности Azure CLI.
Чтобы явно указать идентификатор подписки для вашей серверной конфигурации, вы должны добавить его в блок конфигурации серверной части. Вот так:
backend "azurerm" {
resource_group_name = "resourcegroup_name"
storage_account_name = "storageaccount_name"
container_name = "mystate"
key = "tfstatename1.tfstate"
subscription_id = "091f1800-0de3-4fef-831a-003a74ce245f"
}
Ссылка: https://developer.hashicorp.com/terraform/language/settings/backends/azurerm