【发布时间】:2022-01-11 21:49:26
【问题描述】:
是否可以使用 createUIDefintion.json 文件和 terraform 脚本而不是 mainTemplate.json(arm 模板)来创建“azure 托管应用程序定义”?。
【问题讨论】:
标签: azure user-interface terraform azure-resource-manager managed
是否可以使用 createUIDefintion.json 文件和 terraform 脚本而不是 mainTemplate.json(arm 模板)来创建“azure 托管应用程序定义”?。
【问题讨论】:
标签: azure user-interface terraform azure-resource-manager managed
这是不可能的,因为要创建和发布托管应用程序定义,您需要一个 zip 文件,其中应包含 mainTemplate.json 和 createUiDefinition.json 文件。
如果您查看此Create and publish a managed application definition 文档,您会发现 -
每个托管应用程序定义都包含一个名为 mainTemplate.json 的文件。在其中定义要部署的 Azure 资源。该模板与常规 ARM 模板没有什么不同。
和
您定义用于创建托管应用程序的门户体验。 createUiDefinition.json 文件生成门户界面。您可以定义用户如何为每个参数提供输入。
然后我们通过将这两个文件添加到一个 .zip 文件中来打包文件。并且这两个文件必须位于 .zip 文件的根目录。如果将它们放在文件夹中,则在创建托管应用程序定义时会收到错误消息。
设置授权规则后,现在您可以使用 terraform 创建托管应用程序定义,如下所示。
provider "azurerm" {
features {}
}
data "azurerm_client_config" "current" {}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_managed_application_definition" "example" {
name = "example-managedapplicationdefinition"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
lock_level = "ReadOnly"
package_file_uri = "Path of the zip file...."
display_name = "TestManagedApplicationDefinition"
description = "Test Managed Application Definition"
authorization {
service_principal_id = data.azurerm_client_config.current.object_id
role_definition_id = "a094b430-dad3-424d-ae58-13f72fd72591"
}
}
有关更多信息,请阅读来自 terraform 的 Create and publish a managed application definition 和 azurerm_managed_application_definition 文档。
【讨论】: