Partilhar via


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