本文介绍用于获取与当前部署相关的值的 Bicep 函数。
部署者
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 文件有时编译为 languageVersion 2.0 ARM 模板。 因此,Bicep 类型检查会将函数视为 deployment() 仅返回语言版本 2.0 ARM 模板中返回的属性子集。 有关详细信息,请参阅 languageVersion 2.0 的 deployment() 函数。
示例
下面的示例返回部署对象:
output deploymentOutput object = deployment()
前面的示例返回以下对象:
{
"name": "deploymentOutput",
"location": "",
"properties": {
"template": {
"contentVersion": "1.0.0.0",
"metadata": {
"_EXPERIMENTAL_WARNING": "This template uses ARM features that are experimental. Experimental features should be enabled for testing purposes only, as there are no guarantees about the quality or stability of these features. Do not enable these settings for any production usage, or your production environment may be subject to breaking.",
"_EXPERIMENTAL_FEATURES_ENABLED": [
"Asserts"
],
"_generator": {
"name": "bicep",
"version": "0.39.26.7824",
"templateHash": "10348958332696598785"
}
}
}
}
}
环境
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": "AzureChinaCloud",
"gallery": "https://gallery.chinacloudapi.cn/",
"graph": "https://graph.chinacloudapi.cn/",
"portal": "https://portal.azure.cn",
"graphAudience": "https://graph.chinacloudapi.cn/",
"activeDirectoryDataLake": "https://datalake.chinacloudapi.cn/",
"batch": "https://batch.chinacloudapi.cn/",
"media": "https://rest.media.chinacloudapi.cn",
"sqlManagement": "https://management.core.chinacloudapi.cn:8443/",
"vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
"resourceManager": "https://management.chinacloudapi.cn/",
"authentication": {
"loginEndpoint": "https://login.chinacloudapi.cn/",
"audiences": [ "https://management.core.chinacloudapi.cn/", "https://management.chinacloudapi.cn/" ],
"tenant": "common",
"identityProvider": "AAD"
},
"suffixes": {
"acrLoginServer": ".azurecr.cn",
"azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
"azureDatalakeStoreFileSystem": "azuredatalakestore.net",
"azureFrontDoorEndpointSuffix": "azurefd.net",
"keyvaultDns": ".vault.azure.cn",
"sqlServerHostname": ".database.chinacloudapi.cn",
"storage": "core.chinacloudapi.cn"
}
}
后续步骤
- 若要从资源、资源组或订阅获取值,请参阅 Resource functions(资源函数)。