我已经设置了一个 Azure Marketoffer 作为托管应用程序。我有一个 createUiDefinition.json 文件,它定义了用于创建托管应用程序的必要选项卡/输入/字段等。
通过市场进行测试时,“基本”选项卡会自动插入两个附加字段;托管应用程序详细信息部分中的应用程序名称和托管资源组。
通过我的所有搜索,我无法在 Microsoft 文档中找到 createUiDefinition.json 模板和/或示例如何读取这两个字段的输出。
如果有
[resourceGroup().name]
、[subscription().subscriptionId]
和 [location()]
的参考,我无法找到上述字段的参考值。
然后可以在 createUiDefinition.json 文件中传递它们以供以后使用:
"outputs": {
"applicationName": "...", //need reference to inserted fields
"applicationManagedResourceGroup": "...",
"managedApplicationSubscriptionId": "[subscription().subscriptionId]",
"managedApplicationResourceGroup": "[resourceGroup().name]",
"location": "[location()]",
"vNetNewOrExisting": "[steps('deploymentDetails').vnet.newOrExisting]",
"vNetName": "[steps('deploymentDetails').vnet.name]",
...
注意:这些字段由托管应用程序市场自动插入。使用沙盒工具时它们不会显示,因为它未链接到托管应用程序。
有人知道如何引用这两个值吗?
我已尝试在 Microsoft 网站上搜索对这些自动插入字段的任何引用,但没有找到任何引用它们的内容。
我尝试用
[applicationResourceName()]
进行猜测,但这似乎不起作用。拔掉我的头发,因为我不可能是唯一需要捕捉这些价值观的人。
事实证明,可以通过抓取二头肌文件中的
resourceGroup().?managedBy
属性找到托管应用程序的名称。
此值仅在上述情况下存在,当您允许 Azure 门户创建托管应用程序名称和资源组字段时。在我的二头肌文件中,如果在沙箱中进行测试,我使用了以下必要的内容(注意空检查)。
var managedApplicationId = resourceGroup().?managedBy ?? null
希望有帮助。