本文所說明的 Bicep 函式,可用於取得與目前部署相關的值。
部署者
deployer()
傳回起始目前部署之主體(身分識別)的相關信息。 主體可以是使用者、服務主體或受控識別,視部署的啟動方式而定。
命名空間:az。
傳回值
此函式會傳回物件,其中包含部署主體的詳細數據,包括:
-
objectId:主體Microsoft Entra ID 對象標識碼。 -
tenantId:Microsoft Entra 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 屬性。 部署 location 本機 Bicep 檔案時,不會包含 屬性。 其格式為:
{
"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"
}
}
下一步
- 若要從資源、資源群組或訂用帳戶中取得值,請參閱 資源函式。