Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Resource Manager предоставляет следующие функции для получения значений, связанных с текущим развертыванием шаблона Azure Resource Manager (шаблон ARM):
Сведения о получении значений из ресурсов, групп ресурсов или подписок см. в разделе "Функции ресурсов".
Tip
Bicep рекомендуется, так как он предлагает те же возможности, что и шаблоны ARM, и синтаксис проще использовать. Дополнительные сведения см. в разделе deployment
"Функции".
deployer
deployer()
Возвращает сведения о текущем субъекте развертывания.
В Bicep используйте функцию deployer
.
Возвращаемое значение
Эта функция возвращает сведения о текущем субъекте развертывания, включая идентификатор клиента, идентификатор объекта и имя участника-пользователя:
{
"objectId": "",
"tenantId": "",
"userPrincipalName": ""
}
Example
В следующем примере возвращается объект deployer:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"developerOutput": {
"type": "object",
"value": "[deployer()]"
}
}
}
В предыдущем примере возвращается следующий объект:
{
"objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"userPrincipalName":"[email protected]"
}
deployment
deployment()
Возвращает сведения о текущей операции развертывания.
В Bicep используйте функцию deployment
.
Возвращаемое значение
Эта функция возвращает объект, переданный во время развертывания. Свойства в возвращаемом объекте отличаются в зависимости от того, есть ли вы:
- Развертывание шаблона или спецификации шаблона.
- Развертывание шаблона, который является локальным файлом или развертыванием шаблона, к которому обращается удаленный файл с помощью URI.
- Развертывание в группе ресурсов или развертывание в одной из других областей (подписка Azure, группы управления или клиенты).
При развертывании локального шаблона в группе ресурсов функция возвращает следующий формат:
{
"name": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Если шаблон удален, templateLink
свойство включается в возвращаемый объект. Свойство templateLink
содержит универсальный код ресурса (URI) шаблона. Формат будет следующим:
{
"name": "",
"properties": {
"templateLink": {
"uri": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Дополнительные сведения см. в разделе "Использование переменных для связывания шаблонов".
При развертывании спецификации шаблона в группе ресурсов функция возвращает следующий формат:
{
"name": "",
"properties": {
"templateLink": {
"id": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Если вы выполняете развертывание в подписке Azure, группе управления или клиенте, возвращаемый объект содержит свойство location
, а не группу ресурсов. Свойство расположения включается при развертывании локального или внешнего шаблона. Формат будет следующим:
{
"name": "",
"location": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
При развертывании шаблона deployment
languageVersion 2.0 функция возвращает ограниченное подмножество свойств:
{
"name": "",
"location": "",
"properties": {
"template": {
"contentVersion": ""
},
"templateLink": {
"id": "",
"uri": ""
}
}
}
Remarks
Вы можете использовать deployment()
ссылку на другой шаблон на основе URI родительского шаблона:
"variables": {
"sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}
Если вы повторно развертываете шаблон из журнала развертывания на портале, шаблон развернется в виде локального файла. Свойство templateLink
не возвращается в функции развертывания. Если в шаблоне применяется templateLink
для ссылки на другой шаблон, не используйте портал для повторного развертывания. Вместо этого используйте команды, с помощью которых вы развернули исходный шаблон.
Example
В следующем примере возвращается объект развертывания:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "object",
"value": "[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"
}
}
Для развертывания подписки в следующем примере возвращается объект развертывания:
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {
"exampleOutput": {
"type": "object",
"value": "[deployment()]"
}
}
}
environment
environment()
Возвращает сведения о среде Azure, используемой для развертывания. Функция environment()
не знает о конфигурациях ресурсов. Он может возвращать только один DNS-суффикс по умолчанию для каждого типа ресурса.
В Bicep используйте функцию environment
.
Remarks
Чтобы просмотреть список зарегистрированных сред для учетной записи, используйте 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": ""
}
}
Example
Следующий пример шаблона возвращает объект среды:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"environmentOutput": {
"type": "object",
"value": "[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"
}
}
parameters
parameters(parameterName)
Возвращает значение параметра. Указанное имя параметра должно быть определено в разделе параметров шаблона.
В Bicep напрямую ссылаясь на параметры с помощью их символьных имен.
Parameters
Parameter | Required | Type | Description |
---|---|---|---|
parameterName | Yes | string | Имя параметра, который требуется вернуть. |
Возвращаемое значение
Значение указанного параметра.
Remarks
Как правило, параметры используются, чтобы задать значения ресурсов. В следующем примере значению параметра задается имя веб-сайта, переданное во время развертывания.
"parameters": {
"siteName": {
"type": "string"
}
}, "resources": [
{
"type": "Microsoft.Web/Sites",
"apiVersion": "2016-08-01",
"name": "[parameters('siteName')]",
...
}
]
Example
В следующем примере показано упрощенное использование parameters
функции:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"stringParameter": {
"type": "string",
"defaultValue": "option 1"
},
"intParameter": {
"type": "int",
"defaultValue": 1
},
"objectParameter": {
"type": "object",
"defaultValue": {
"one": "a",
"two": "b"
}
},
"arrayParameter": {
"type": "array",
"defaultValue": [ 1, 2, 3 ]
},
"crossParameter": {
"type": "string",
"defaultValue": "[parameters('stringParameter')]"
}
},
"variables": {},
"resources": [],
"outputs": {
"stringOutput": {
"type": "string",
"value": "[parameters('stringParameter')]"
},
"intOutput": {
"type": "int",
"value": "[parameters('intParameter')]"
},
"objectOutput": {
"type": "object",
"value": "[parameters('objectParameter')]"
},
"arrayOutput": {
"type": "array",
"value": "[parameters('arrayParameter')]"
},
"crossOutput": {
"type": "string",
"value": "[parameters('crossParameter')]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
Name | Type | Value |
---|---|---|
stringOutput | String | вариант 1 |
intOutput | Int | 1 |
objectOutput | Object | {"one": "a", "two": "b"} |
arrayOutput | Array | [1, 2, 3] |
crossOutput | String | вариант 1 |
Дополнительные сведения об использовании параметров см. в шаблонах ARM.
variables
variables(variableName)
Возвращает значение переменной. Указанное имя переменной должно быть определено в разделе переменных шаблона.
В Bicep напрямую ссылаясь на переменные, используя их символьные имена.
Parameters
Parameter | Required | Type | Description |
---|---|---|---|
variableName | Yes | String | Имя переменной, которую необходимо вернуть. |
Возвращаемое значение
Значение указанной переменной.
Remarks
Как правило, переменные используются, чтобы упростить шаблон за счет создания сложных значений (единожды). В следующем примере создается уникальное имя для учетной записи хранения:
"variables": {
"storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
},
{
"type": "Microsoft.Compute/virtualMachines",
"dependsOn": [
"[variables('storageName')]"
],
...
}
],
Example
В следующем примере возвращаются различные значения переменных:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {
"var1": "myVariable",
"var2": [ 1, 2, 3, 4 ],
"var3": "[ variables('var1') ]",
"var4": {
"property1": "value1",
"property2": "value2"
}
},
"resources": [],
"outputs": {
"exampleOutput1": {
"type": "string",
"value": "[variables('var1')]"
},
"exampleOutput2": {
"type": "array",
"value": "[variables('var2')]"
},
"exampleOutput3": {
"type": "string",
"value": "[variables('var3')]"
},
"exampleOutput4": {
"type": "object",
"value": "[variables('var4')]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
Name | Type | Value |
---|---|---|
exampleOutput1 | String | myVariable |
exampleOutput2 | Array | [1, 2, 3, 4] |
exampleOutput3 | String | myVariable |
exampleOutput4 | Object | {"property1": "value1", "property2": "value2"} |
Дополнительные сведения об использовании переменных см. в шаблоне ARM.
Дальнейшие шаги
Дополнительные сведения о разделах шаблона ARM см. в структуре и синтаксисе шаблонов ARM.