是否可以创建一个;azure管理的应用程序定义";使用createUIDefinition.json文件和terraform脚本,而不是mainTemplate.json(arm模板(?。
这是不可能的,因为要创建和发布托管应用程序定义,您需要一个zip文件,该文件应包含mainTemplate.json和createUiDefinition.json文件。
如果你选中这个创建并发布一个托管应用程序定义文档,那么你会发现-
每个托管应用程序定义都包括一个名为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创建并发布托管应用程序定义和azurerm_managed_application_definition文档。