使用 Terraform 创建 Azure 订阅

Azure Subscription creation using Terraform

我们正在尝试使用 Terraform 启动 Azure 订阅。但无法找到任何能够成功创建订阅的确切代码。以下是我们尝试执行的可能场景的简要说明。

  1. 我们使用了下面的代码并执行了它,我们的角色是 Account Owner Role - 但是代码是成功的,但是我们不能 请参阅门户中的订阅。 Link 代码:

    https://github.com/aztfmod/terraform-azurerm-caf/tree/5.4.8/modules/subscriptions

  2. 下面是我们再次测试的下一个代码Account Owner role - 但是 错误信息如下。 Link 代码:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subscription#example-usage---creating-a-new-alias-and-subscription-for-a-microsoft-customer-account

    Error Message: creating new Subscription (Alias "XXXX7"):
    subscription.AliasClient#Create: Failure sending request:
    StatusCode=0 -- Original Error: Code="InvalidSubCreationScope"
    Message="Not a valid subscription creation scope", with
    azurerm_subscription.testtf, on main.tf line 31, in resource
    "azurerm_subscription" "testtf":   31: resouce
    "azurerm_subscription" "testtf" {
    
  3. 我们尝试执行的另一个代码 - 但它破坏了旧的 订阅。 Link 代码相同: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subscription#example-usage---creating-a-new-alias-and-subscription-for-a-microsoft-customer-account

尽早请求任何 suggestions/help,这样可以帮助我们。 提前致谢!

Error Message: creating new Subscription (Alias "XXXX7"): subscription.AliasClient#Create: Failure sending request: StatusCode=0
-- Original Error: Code="InvalidSubCreationScope" Message="Not a valid subscription creation scope", with azurerm_subscription.testtf, on main.tf line 31, in resource "azurerm_subscription" "testtf":   31: resouce "azurerm_subscription" "testtf" {

正如我在评论中提到的,上述问题与用于创建订阅的计费范围有关。而不是 Name 你应该在 billing_account_nameenrollment_account_name 中使用 Billing account No.Enrollment no. 参数如下 :

data "azurerm_billing_enrollment_account_scope" "example" {
  billing_account_name    = "1234567890"
  enrollment_account_name = "0123456"
}

resource "azurerm_subscription" "example" {
  subscription_name = "My Example EA Subscription"
  billing_scope_id  = data.azurerm_billing_enrollment_account_scope.example.id
}

注意:请确保您使用的所有细节都是正确的,这些细节可以从 EA 门户中找到。