Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Azure Blueprints (Preview) будет выведен из эксплуатации 31 января 2027 года, а поэтапный вывод начнётся с 31 июля 2026 года. Перенесите существующие определения и назначения чертежей в Deployment Stacks (рекомендую) и Template Specs. Артефакты чертежей преобразуются в шаблоны ARM JSON или файлы Bicep, используемые для определения стеков развертывания. Для полной поэтапной хронологии, влияния и часто задаваемых вопросов см. Azure Blueprints retirement или https://aka.ms/AzureBlueprintsRetirement. Сведения о том, как создать артефакт в качестве ресурса ARM, см. в статье:
Azure Blueprints предоставляет функции, делающие определение чертежа более динамичным. Эти функции предназначены для использования с определениями чертежей и артефактами чертежей. Артефакт Azure Resource Manager Template (ARM template) поддерживает полное использование функций Resource Manager, а также получение динамического значения через параметр blueprint.
Поддерживаются следующие функции:
artifacts
artifacts(artifactName)
Возвращает объект свойств, заполненный артефактами этого чертежа.
Note
Функцию artifacts() нельзя использовать из ARM-шаблона. Функция может использоваться только в определении чертежа JSON или в артефактном JSON при управлении чертежем с помощью Azure PowerShell или REST API в составе Blueprints-as-code.
Параметры
| Parameter | Required | Тип | Description |
|---|---|---|---|
| artifactName | Yes | string | Название артефакта чертежа. |
Возвращаемое значение
Объект свойств выхода. Свойства выходов зависят от типа артефакта чертежа, на который ссылается. Все типы следуют следующему формату:
{
"outputs": {collectionOfOutputProperties}
}
Артефакт присвоения политики
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Артефакт шаблона ARM
Свойства выхода возвращаемого объекта определяются внутри шаблона ARM и возвращаются при развертывании.
Артефакт присвоения ролей
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Example
Артефакт шаблона ARM с ID myTemplateArtifact , содержащий следующее свойство выхода образца:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
...
"outputs": {
"myArray": {
"type": "array",
"value": ["first", "second"]
},
"myString": {
"type": "string",
"value": "my string value"
},
"myObject": {
"type": "object",
"value": {
"myProperty": "my value",
"anotherProperty": true
}
}
}
}
Некоторые примеры извлечения данных из выборки myTemplateArtifact :
| Expression | Тип | Ценность |
|---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Массив | [«первый», «второй»] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
String | «Первый» |
[artifacts("myTemplateArtifact").outputs.myString] |
String | «Моя струнная стоимость» |
[artifacts("myTemplateArtifact").outputs.myObject] |
Object | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
String | «Моя ценность» |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Булево | True |
concat
concat(string1, string2, string3, ...)
Объединяет несколько значений строк и возвращает конкатенированную строку.
Параметры
| Parameter | Required | Тип | Description |
|---|---|---|---|
| строка1 | Yes | string | Первое значение для конкатенации. |
| дополнительные аргументы | Нет | string | Дополнительные значения в последовательном порядке для конкатенации |
Возвращаемое значение
Цепочка объединённых значений.
Remarks
Функция Azure Blueprints отличается от шаблона ARM тем, что работает только со строками.
Example
concat(parameters('organizationName'), '-vm')
parameters
parameters(parameterName)
Возвращает значение параметра чертежа. Указанное имя параметра должно быть определено в определении чертежа или в артефактах чертежа.
Параметры
| Parameter | Required | Тип | Description |
|---|---|---|---|
| parameterName | Yes | string | Имя параметра, который требуется вернуть. |
Возвращаемое значение
Значение указанного параметра чертежа или артефакта чертежа.
Remarks
Функция Azure Blueprints отличается от шаблона ARM тем, что работает только с параметрами blueprint.
Example
Определите параметры principalIds в определении чертежа:
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"parameters": {
"principalIds": {
"type": "array",
"metadata": {
"displayName": "Principal IDs",
"description": "This is a blueprint parameter that any artifact can reference. We'll display these descriptions for you in the info bubble. Supply principal IDs for the users,groups, or service principals for the Azure role assignment.",
"strongType": "PrincipalId"
}
}
},
...
}
}
Затем используйте principalIds как аргумент в parameters() артефакте чертежа:
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
Возвращает объект, представляющий текущую группу ресурсов.
Возвращаемое значение
Возвращаемый объект находится в следующем формате:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Remarks
Функция Azure Blueprints отличается от функции шаблона ARM. Эту функцию нельзя использовать в артефакте уровня подписки или в определении resourceGroup() чертежа. Его можно использовать только в артефактах чертежей, входящих в состав артефакта группы ресурсов.
Распространённое применение resourceGroup() функции — создание ресурсов в том же месте, что и артефакт группы ресурсов.
Example
Чтобы использовать местоположение группы ресурсов, установленное либо в определении чертежа, либо во время присвоения, в качестве локации для другого артефакта, объявьте объект заполняющей группы ресурсов в определении чертежа. В этом примере NetworkingPlaceholder — это название заместителя группы ресурсов.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Затем используйте resourceGroup() функцию в контексте артефакта чертежа, который нацелен на объект заполняющей группы ресурсов. В этом примере артефакт шаблона развёртывается в группе ресурсов NetworkingPlaceholder и предоставляет параметр resourceLocation , динамически заполняемый местоположением группы ресурсов NetworkingPlaceholder в шаблон. Местоположение группы ресурсов NetworkingPlaceholder могло быть статически определено в определении чертежа или динамически определено во время присвоения. В любом случае шаблонный артефакт получает эту информацию в качестве параметра и использует её для развертывания ресурсов в нужном месте.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
Возвращает объект, представляющий указанный артефакт группы ресурсов. В отличие от resourceGroup(), который требует контекста артефакта, эта функция используется для получения свойств конкретной группы ресурсов, когда не в контексте этой группы ресурсов.
Параметры
| Parameter | Required | Тип | Description |
|---|---|---|---|
| ЗаполнительИмя | Yes | string | Заполнительное название артефакта группы ресурсов для возврата. |
Возвращаемое значение
Возвращаемый объект находится в следующем формате:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Example
Чтобы использовать местоположение группы ресурсов, установленное либо в определении чертежа, либо во время присвоения, в качестве локации для другого артефакта, объявьте объект заполняющей группы ресурсов в определении чертежа. В этом примере NetworkingPlaceholder — это название заместителя группы ресурсов.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Затем используйте resourceGroups() функцию из контекста любого артефакта чертежа, чтобы получить ссылку на объект заполняющей группы ресурсов. В этом примере артефакт шаблона развёртывается вне группы ресурсов NetworkingPlaceholder и предоставляет параметр artifactLocation , динамически заполняемый местоположением группы ресурсов NetworkingPlaceholder в шаблон. Местоположение группы ресурсов NetworkingPlaceholder могло быть статически определено в определении чертежа или динамически определено во время присвоения. В любом случае шаблонный артефакт получает эту информацию в качестве параметра и использует её для развертывания ресурсов в нужном месте.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
subscription
subscription()
Возвращает информацию о подписке на текущее задание чертежа.
Возвращаемое значение
Возвращаемый объект находится в следующем формате:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Example
Используйте отображаемое имя подписки и функцию concat() для создания конвенции именования, передаваемой в виде параметра resourceName артефакту шаблона.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Дальнейшие действия
- Узнайте о жизненном цикле схемы.
- Узнайте, как использовать статические и динамические параметры.
- Узнайте, как настроить порядок последовательности схемы.
- Узнайте, как использовать блокировку ресурсов чертежа.
- Узнайте, как обновлять существующие назначения.
- Устраняйте проблемы, возникающие во время назначения схемы, с помощью общих инструкций по устранению неполадок.