azure 如何获取Terraform中Function App staging插槽的principal_id?

a7qyws3x  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(142)

我需要访问Terraform中的Function App暂存插槽。
我可以得到它的生产插槽:

data "azurerm_linux_function_app" "my_application" {
  name                = <app_name>
  resource_group_name = <resource_group_name>
}

resource "azurerm_role_assignment" "role_assignment" {
  scope               = <scope>
  role_definition_name = <role_name>
  principal_id        = data.azurerm_linux_function_app.my_application.identity.0.principal_id
}

对于staging插槽,我希望能够做类似的事情:

data "azurerm_linux_function_app_slot" "my_app_staging" {
  name                = <app_name>
  resource_group_name = <resource_group_name>
  slot_name           = "staging"
}

resource "azurerm_role_assignment" "staging_role_assignment" {
  scope               = <scope>
  role_definition_name = <role_name>
  principal_id        = data.azurerm_linux_function_app_slot.my_app_staging.identity.0.principal_id
}

但是,我得到以下错误:
提供程序hashicorp/azurerm不支持数据源“azurerm_linux_function_app_slot”。

问题

如何在Terraform中获取Function App的Staging插槽的principal_id

0sgqnhkj

0sgqnhkj1#

没有“azurerm_linux_function_app_slot”的支持数据源。
这些是可用的数据源

您可以尝试使用resource id导入Function Apps Deployment Slots,例如

terraform import azurerm_linux_function_app_slot.example "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Web/sites/site1/slots/slot1"

来源:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/linux_function_app_slot
希望这有帮助!

7cwmlq89

7cwmlq892#

自3.48.0起,该数据源未在提供程序中实现。
或者,您可以使用“用户分配的标识”并使用“用户分配的标识”的数据源。
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/user_assigned_identity

相关问题