当 Terraform 脚本引用的内容 link 更新时,Azure Runbook 的内容未更新

Content of the Azure Runbook not getting updated when the content link referred to by the Terraform script is updated

我正在使用 azurerm_automation_runbook 模块创建 Azure Automation Runbook。下面是我正在使用的代码。

resource "azurerm_automation_runbook" "automation_runbook" {
  name                    = var.automation_runbook_name
  location                = var.location
  resource_group_name     = var.resource_group_name
  automation_account_name = var.automation_account_name
  runbook_type            = "PowerShell"
  log_verbose             = "true"
  log_progress            = "true"

  publish_content_link {
    uri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1"
  }
}

我能够使用上面的代码成功创建一个 Runbook。但问题是当我将 publish_content_link 块中的 uri 更改为 https://raw.githubusercontent.com/azureautomation/automation-packs/master/200-connect-azure-vm/Runbooks/Connect-AzureVM.ps1 并应用(terraform apply 检测到更改并成功应用)时,新的 PowerShell 脚本不是反映在 Azure 门户的 Azure Automation Runbook 中,它仍然显示旧的 PowerShell 脚本。

任何有关如何解决此问题的帮助将不胜感激。

我在我的环境中对此进行了测试,我注意到仅更改 publish_content_link 中的 uri 并没有真正对 runbook 脚本进行任何更改。


为了在脚本中应用更改,您还必须更改 Runbook 的 name 而不是仅更改 uri.

因此,在您更改 terraform 代码中的名称和 uri 并进行应用后。它将在门户中使用新名称和内容重新创建 Runbook。

输出:

如果您只想更改内容而不更改名称,那么您可以将 link 中的脚本保存在本地并将内容传递给已创建的 runbook,它将成功更新内容。

我也用下面的代码测试了这个:

provider "azurerm"{
  features{}
}

provider "local" {}
data "azurerm_resource_group" "example" {
  name     = "ansumantest"
}

resource "azurerm_automation_account" "example" {
  name                = "account1"
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name

  sku_name = "Basic"
}

# added after the runbook was created
data "local_file" "pscript" {
  filename = "C:/Users/user/terraform/runbook automation/connect-vm.ps1"
}

resource "azurerm_automation_runbook" "example" {
  name                    = "Get-AzureVMTutorial"
  location                = data.azurerm_resource_group.example.location
  resource_group_name     = data.azurerm_resource_group.example.name
  automation_account_name = azurerm_automation_account.example.name
  log_verbose             = "true"
  log_progress            = "true"
  description             = "This is an example runbook"
  runbook_type            = "PowerShell"

 content = data.local_file.pscript.content # added this to update the content
}

输出: