教程:将输出添加到 Azure 资源管理器 Bicep 文件
本教程介绍如何从部署返回值。 需要已部署资源提供的值时,请使用输出。 完成本教程需要 7 分钟。
注意
本文包含 Bicep 示例。 Bicep 目前为预览版。 有关详细信息,请参阅 Bicep 项目。
先决条件
建议完成有关变量的教程,但这不是必需的。
必须具有包含 Bicep 扩展的 Visual Studio Code,以及 Azure PowerShell 或 Azure CLI。 有关详细信息,请参阅 Bicep 工具。
查看 Bicep 文件
在上一篇教程的末尾,你的 Bicep 文件有以下内容:
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Premium_LRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2019-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
它部署一个存储帐户,但不返回有关该存储帐户的任何信息。 可能需要从新资源捕获属性,以便以后引用它们。
添加输出
可以使用输出,以便从部署返回值。 例如,可以获取新存储帐户的终结点。
以下示例演示为了添加输出值而对 Bicep 文件做出的更改。 请复制整个文件,并将你的 Bicep 文件替换为该文件的内容。
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Premium_LRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2019-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
关于添加的输出值,有一些重要的值得注意的项。
返回的值的类型设置为 object
,这意味着它会返回模板对象。
若要从存储帐户获取 primaryEndpoints
属性,请使用存储帐户符号名称。 Visual Studio Code 的自动完成功能提供了属性的完整列表:
部署 Bicep 文件
现在可以部署 Bicep 文件并查看返回的值了。
如果尚未创建资源组,请参阅创建资源组。 此示例假定你已按第一篇教程所述将 bicepFile
变量设置为 Bicep 文件的路径。
New-AzResourceGroupDeployment `
-Name addoutputs `
-ResourceGroupName myResourceGroup `
-TemplateFile $bicepFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
在部署命令的输出中,将会看到类似于以下示例的对象,但前提是输出采用 JSON 格式:
{
"dfs": "https://storeluktbfkpjjrkm.dfs.core.chinacloudapi.cn/",
"web": "https://storeluktbfkpjjrkm.z19.web.core.chinacloudapi.cn/",
"blob": "https://storeluktbfkpjjrkm.blob.core.chinacloudapi.cn/",
"queue": "https://storeluktbfkpjjrkm.queue.core.chinacloudapi.cn/",
"table": "https://storeluktbfkpjjrkm.table.core.chinacloudapi.cn/",
"file": "https://storeluktbfkpjjrkm.file.core.chinacloudapi.cn/"
}
注意
如果部署失败,请使用 verbose
开关获取有关正在创建的资源的信息。 使用 debug
开关获取调试的详细信息。
回顾所做的工作
我们在已完成的六个教程中做了很多工作。 让我们抽些时间来回顾所做的工作。 你使用易于提供的参数创建了 Bicep 文件。 该 Bicep 文件可以在不同环境中重复使用,因为它允许自定义,并且会动态创建所需值。 它还返回有关存储帐户的信息,这些信息可以用在脚本中。
现在,让我们来看一下资源组和部署历史记录。
登录 Azure 门户。
在左侧菜单中选择“资源组”。
选择已部署到的资源组。
我们会在资源组中有至少一个(也可能有多个)存储帐户,具体取决于所执行的步骤。
此外还会在历史记录中列出多个成功的部署。 选择该链接。
可以在历史记录中看到所有部署。 选择名为 addoutputs 的部署。
可以查看输入。
可以查看输出。
可以查看 JSON 模板。
清理资源
若要继续学习下一篇教程,则不需删除该资源组。
如果你不打算继续学习,请删除该资源组以清理部署的资源。
- 在 Azure 门户上的左侧菜单中选择“资源组” 。
- 在“按名称筛选”字段中输入资源组名称。
- 选择资源组名称。
- 在顶部菜单中选择“删除资源组”。
后续步骤
在本教程中,你将返回值添加到了 Bicep 文件。 下一个教程将介绍如何导出 JSON 模板,以及如何在 Bicep 文件中使用该导出的模板的部件。