本文介绍用于获取与当前部署相关的值的 Bicep 函数。
deployer
deployer()
返回有关启动当前部署的主体(标识)的信息。 主体可以是用户、服务主体或托管标识,具体取决于部署的启动方式。
命名空间:az。
返回值
此函数返回一个对象,其中包含有关部署主体的详细信息,包括:
-
objectId
:主体的 Microsoft Entra ID 对象 ID。 -
tenantId
:Microsoft Entra ID 租户 ID。 -
userPrincipalName
:用户主体名称(UPN)(如果可用)。 对于服务主体或托管标识,此属性可能为空。
注释
返回的值取决于部署上下文。 例如, userPrincipalName
服务主体或托管标识可能为空。
{
"objectId": "<principal-object-id>",
"tenantId": "<tenant-id>",
"userPrincipalName": "<user@___domain.com or empty>"
}
示例
以下示例 Bicep 文件返回 deployer 对象。
output deployer object = deployer()
示例输出(值因部署而异):
{
"objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"userPrincipalName":"john.doe@contoso.com"
}
有关 Azure 标识的详细信息,请参阅 什么是 Azure Active Directory 标识?。
部署
deployment()
返回有关当前部署操作的信息。
命名空间:az。
返回值
此函数返回部署期间传递的对象。 返回的对象中的属性因以下情况而异:
将本地 Bicep 文件部署到资源组时,该函数返回以下格式:
{
"name": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
当部署到 Azure 订阅、管理组或租户时,返回对象包含 ___location
属性。 部署本地 Bicep 文件时,不包括 ___location
属性。 格式为:
{
"name": "",
"___location": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
示例
下面的示例返回部署对象:
output deploymentOutput object = deployment()
前面的示例返回以下对象:
{
"name": "deployment",
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "Object",
"value": "[deployment()]"
}
}
},
"templateHash": "13135986259522608210",
"parameters": {},
"mode": "Incremental",
"provisioningState": "Accepted"
}
}
环境
environment()
返回有关用于部署的 Azure 环境的信息。 该 environment()
函数不知道资源配置。 它只能为每个资源类型返回单个默认 DNS 后缀。
命名空间:az。
备注
若要查看帐户的已注册环境的列表,请使用 az cloud list 或 Get-AzEnvironment。
返回值
此函数返回当前 Azure 环境的属性。 以下示例显示了全局 Azure 的属性。 主权云可能会返回略有不同的属性。
{
"name": "",
"gallery": "",
"graph": "",
"portal": "",
"graphAudience": "",
"activeDirectoryDataLake": "",
"batch": "",
"media": "",
"sqlManagement": "",
"vmImageAliasDoc": "",
"resourceManager": "",
"authentication": {
"loginEndpoint": "",
"audiences": [
"",
""
],
"tenant": "",
"identityProvider": ""
},
"suffixes": {
"acrLoginServer": "",
"azureDatalakeAnalyticsCatalogAndJob": "",
"azureDatalakeStoreFileSystem": "",
"azureFrontDoorEndpointSuffix": "",
"keyvaultDns": "",
"sqlServerHostname": "",
"storage": ""
}
}
示例
以下示例 Bicep 文件返回环境对象。
output environmentOutput object = environment()
前面的示例在部署到全局 Azure 时返回以下对象:
{
"name": "AzureCloud",
"gallery": "https://gallery.azure.com/",
"graph": "https://graph.windows.net/",
"portal": "https://portal.azure.com",
"graphAudience": "https://graph.windows.net/",
"activeDirectoryDataLake": "https://datalake.azure.net/",
"batch": "https://batch.core.windows.net/",
"media": "https://rest.media.azure.net",
"sqlManagement": "https://management.core.windows.net:8443/",
"vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
"resourceManager": "https://management.azure.com/",
"authentication": {
"loginEndpoint": "https://login.microsoftonline.com/",
"audiences": [ "https://management.core.windows.net/", "https://management.azure.com/" ],
"tenant": "common",
"identityProvider": "AAD"
},
"suffixes": {
"acrLoginServer": ".azurecr.io",
"azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
"azureDatalakeStoreFileSystem": "azuredatalakestore.net",
"azureFrontDoorEndpointSuffix": "azurefd.net",
"keyvaultDns": ".vault.azure.net",
"sqlServerHostname": ".database.windows.net",
"storage": "core.windows.net"
}
}
后续步骤
- 若要从资源、资源组或订阅获取值,请参阅 Resource functions(资源函数)。