Funções para utilização com o Azure Blueprints
Importante
A 11 de julho de 2026, o Blueprints (Pré-visualização) será preterido. Migre as definições e atribuições de esquemas existentes para As Especificações de Modelo e As Pilhas de Implementação. Os artefactos de esquema devem ser convertidos em modelos JSON do ARM ou ficheiros Bicep utilizados para definir pilhas de implementação. Para saber como criar um artefacto como um recurso do ARM, consulte:
O Azure Blueprints fornece funções que fazem com que uma definição de esquema seja mais dinâmica. Estas funções destinam-se a ser utilizadas com definições de esquema e artefactos de esquema. Um artefacto do Modelo de Resource Manager do Azure (modelo arm) suporta a utilização total de funções Resource Manager, além de obter um valor dinâmico através de um parâmetro de esquema.
São suportadas as seguintes funções:
artefactos
artifacts(artifactName)
Devolve um objeto de propriedades preenchidas com as saídas dos artefactos de esquema.
Nota
A artifacts()
função não pode ser utilizada a partir de um Modelo do ARM. A função só pode ser utilizada na definição de esquema JSON ou no artefacto JSON ao gerir o esquema com Azure PowerShell ou API REST como parte do Blueprints-as-code.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
artifactName | Yes | string | O nome de um artefacto de esquema. |
Valor devolvido
Um objeto de propriedades de saída. As propriedades de saída dependem do tipo de artefacto de esquema que está a ser referenciado. Todos os tipos seguem o formato:
{
"outputs": {collectionOfOutputProperties}
}
Artefacto de atribuição de políticas
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Artefacto de modelo do ARM
As propriedades de saída do objeto devolvido são definidas no modelo do ARM e devolvidas pela implementação.
Artefacto de atribuição de funções
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Exemplo
Um artefacto de modelo do ARM com o ID myTemplateArtifact que contém a seguinte propriedade de saída de exemplo:
{
"$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
}
}
}
}
Alguns exemplos de obtenção de dados do exemplo myTemplateArtifact são:
Expression | Tipo | Valor |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Matriz | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
String | "primeiro" |
[artifacts("myTemplateArtifact").outputs.myString] |
String | "o meu valor de cadeia" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Objeto | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
String | "o meu valor" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Booleano | Verdadeiro |
concat
concat(string1, string2, string3, ...)
Combina vários valores de cadeia e devolve a cadeia concatenada.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
cadeia1 | Yes | string | O primeiro valor para a concatenação. |
argumentos adicionais | No | string | Valores adicionais por ordem sequencial para a concatenação |
Valor devolvido
Uma cadeia de valores concatenados.
Observações
A função Azure Blueprints difere da função de modelo do ARM, na medida em que só funciona com cadeias de carateres.
Exemplo
concat(parameters('organizationName'), '-vm')
parâmetros
parameters(parameterName)
Devolve um valor de parâmetro de esquema. O nome do parâmetro especificado tem de ser definido na definição do esquema ou nos artefactos de esquema.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
parameterName | Yes | string | O nome do parâmetro a devolver. |
Valor devolvido
O valor do parâmetro de artefacto de esquema ou esquema especificado.
Observações
A função Azure Blueprints difere da função de modelo do ARM, na medida em que funciona apenas com parâmetros de esquema.
Exemplo
Defina os principaisIds de parâmetros na definição do esquema:
{
"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"
}
}
},
...
}
}
Em seguida, utilize principalIds como argumento para parameters()
num artefacto de esquema:
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
Devolve um objeto que representa o grupo de recursos atual.
Valor devolvido
O objeto devolvido está no seguinte formato:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Observações
A função Azure Blueprints difere da função de modelo do ARM. A resourceGroup()
função não pode ser utilizada num artefacto ao nível da subscrição ou na definição do esquema. Só pode ser utilizado em artefactos de esquema que façam parte de um artefacto de grupo de recursos.
Uma utilização comum da resourceGroup()
função é criar recursos na mesma localização que o artefacto do grupo de recursos.
Exemplo
Para utilizar a localização do grupo de recursos, defina na definição do esquema ou durante a atribuição, como a localização para outro artefacto, declarar um objeto de marcador de posição do grupo de recursos na definição do esquema. Neste exemplo, NetworkingPlaceholder é o nome do marcador de posição do grupo de recursos.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Em seguida, utilize a resourceGroup()
função no contexto de um artefacto de esquema destinado a um objeto de marcador de posição de grupo de recursos. Neste exemplo, o artefacto do modelo é implementado no grupo de recursos NetworkingPlaceholder e fornece o parâmetro resourceLocation dinamicamente preenchido com a localização do grupo de recursos NetworkingPlaceholder para o modelo. A localização do grupo de recursos NetworkingPlaceholder poderia ter sido estaticamente definida na definição do esquema ou definida dinamicamente durante a atribuição. Em ambos os casos, o artefacto do modelo é fornecido como um parâmetro e utiliza-as para implementar os recursos na localização correta.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
Devolve um objeto que representa o artefacto do grupo de recursos especificado. Ao contrário resourceGroup()
do , que requer o contexto do artefacto, esta função é utilizada para obter as propriedades de um marcador de posição de grupo de recursos específico quando não está no contexto desse grupo de recursos.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
placeholderName | Yes | string | O nome do marcador de posição do artefacto do grupo de recursos a devolver. |
Valor devolvido
O objeto devolvido está no seguinte formato:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Exemplo
Para utilizar a localização do grupo de recursos, defina na definição do esquema ou durante a atribuição, como a localização para outro artefacto, declarar um objeto de marcador de posição do grupo de recursos na definição do esquema. Neste exemplo, NetworkingPlaceholder é o nome do marcador de posição do grupo de recursos.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Em seguida, utilize a resourceGroups()
função a partir do contexto de qualquer artefacto de esquema para obter uma referência ao objeto de marcador de posição do grupo de recursos. Neste exemplo, o artefacto do modelo é implementado fora do grupo de recursos NetworkingPlaceholder e fornece o parâmetro artifactLocation dinamicamente preenchido com a localização do grupo de recursos NetworkingPlaceholder para o modelo. A localização do grupo de recursos NetworkingPlaceholder poderia ter sido estaticamente definida na definição do esquema ou definida dinamicamente durante a atribuição. Em ambos os casos, o artefacto do modelo é fornecido como um parâmetro e utiliza-as para implementar os recursos na localização correta.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
subscrição
subscription()
Devolve detalhes sobre a subscrição da atribuição de esquema atual.
Valor devolvido
O objeto devolvido está no seguinte formato:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Exemplo
Utilize o nome a apresentar da subscrição e a concat()
função para criar uma convenção de nomenclatura transmitida como resourceName do parâmetro para o artefacto do modelo.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Passos seguintes
- Saiba mais sobre o ciclo de vida do esquema.
- Compreenda como utilizar parâmetros estáticos e dinâmicos.
- Aprenda a personalizar a ordem de sequenciação do esquema.
- Saiba como utilizar o bloqueio de recursos de esquema.
- Saiba como atualizar as atribuições existentes.
- Resolva problemas durante a atribuição de um esquema com a resolução de problemas gerais.