Funkce pro použití s Azure Blueprints

Důležité

11. července 2026 budou podrobné plány (Preview) zastaralé. Migrujte existující definice a přiřazení podrobných plánů do specifikací šablon a zásobníků nasazení. Artefakty podrobného plánu se mají převést na šablony JSON ARM nebo soubory Bicep, které se používají k definování zásobníků nasazení. Informace o tom, jak vytvořit artefakt jako prostředek ARM, najdete tady:

Azure Blueprints poskytuje funkce, díky kterým je definice podrobného plánu dynamičtější. Tyto funkce se používají s definicemi podrobných plánů a artefakty podrobného plánu. Artefakt šablony Azure Resource Manager (šablona ARM) podporuje plné využití Resource Manager funkcí a také získání dynamické hodnoty prostřednictvím parametru podrobného plánu.

Podporují se následující funkce:

Artefakty

artifacts(artifactName)

Vrátí objekt vlastností naplněných výstupy artefaktů podrobného plánu.

Poznámka

Funkci artifacts() nelze použít z šablony ARM. Funkci je možné použít pouze v souboru JSON definice podrobného plánu nebo ve formátu JSON artefaktu při správě podrobného plánu pomocí Azure PowerShell nebo rozhraní REST API v rámci podrobných plánů jako kódu.

Parametry

Parametr Povinné Typ Description
artifactName Yes řetězec Název artefaktu podrobného plánu.

Vrácená hodnota

Objekt výstupních vlastností. Vlastnosti výstupů jsou závislé na typu artefaktu podrobného plánu, na který se odkazuje. Všechny typy mají formát:

{
  "outputs": {collectionOfOutputProperties}
}

Artefakt přiřazení zásad

{
    "outputs": {
        "policyAssignmentId": "{resourceId-of-policy-assignment}",
        "policyAssignmentName": "{name-of-policy-assignment}",
        "policyDefinitionId": "{resourceId-of-policy-definition}",
    }
}

Artefakt šablony ARM

Vlastnosti výstupů vráceného objektu jsou definovány v šabloně ARM a vráceny nasazením.

Artefakt přiřazení role

{
    "outputs": {
        "roleAssignmentId": "{resourceId-of-role-assignment}",
        "roleDefinitionId": "{resourceId-of-role-definition}",
        "principalId": "{principalId-role-is-being-assigned-to}",
    }
}

Příklad

Artefakt šablony ARM s ID myTemplateArtifact obsahující následující ukázkovou výstupní vlastnost:

{
    "$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
            }
        }
    }
}

Mezi příklady načítání dat z ukázky myTemplateArtifact patří:

Výraz Typ Hodnota
[artifacts("myTemplateArtifact").outputs.myArray] Pole ["first", "second"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] Řetězec "first"
[artifacts("myTemplateArtifact").outputs.myString] Řetězec "moje řetězcová hodnota"
[artifacts("myTemplateArtifact").outputs.myObject] Objekt { "myproperty": "my value", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] Řetězec "moje hodnota"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Logická hodnota Ano

concat

concat(string1, string2, string3, ...)

Zkombinuje více řetězcových hodnot a vrátí zřetězený řetězec.

Parametry

Parametr Povinné Typ Description
řetězec 1 Yes řetězec První hodnota pro zřetězení.
další argumenty No řetězec Další hodnoty v sekvenčním pořadí pro zřetězení

Vrácená hodnota

Řetězec zřetězených hodnot.

Poznámky

Funkce Azure Blueprints se od funkce šablony ARM liší tím, že funguje pouze s řetězci.

Příklad

concat(parameters('organizationName'), '-vm')

parameters

parameters(parameterName)

Vrátí hodnotu parametru podrobného plánu. Zadaný název parametru musí být definován v definici podrobného plánu nebo v artefaktech podrobného plánu.

Parametry

Parametr Povinné Typ Description
Parametername Yes řetězec Název parametru, který se má vrátit.

Vrácená hodnota

Hodnota zadaného parametru podrobného plánu nebo artefaktu podrobného plánu.

Poznámky

Funkce Azure Blueprints se liší od funkce šablony ARM v tom, že funguje pouze s parametry podrobného plánu.

Příklad

V definici podrobného plánu definujte parametr 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"
                }
            }
        },
        ...
    }
}

Pak jako argument pro parameters() v artefaktu podrobného plánu použijte id objektu principalIds:

{
    "type": "Microsoft.Blueprint/blueprints/artifacts",
    "kind": "roleAssignment",
    ...
    "properties": {
        "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
        "principalIds": "[parameters('principalIds')]",
        ...
    }
}

resourceGroup

resourceGroup()

Vrátí objekt, který představuje aktuální skupinu prostředků.

Vrácená hodnota

Vrácený objekt je v následujícím formátu:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Poznámky

Funkce Azure Blueprints se liší od funkce šablony ARM. Funkci resourceGroup() nelze použít v artefaktu na úrovni předplatného ani v definici podrobného plánu. Dá se použít jenom v artefaktech podrobného plánu, které jsou součástí artefaktu skupiny prostředků.

Běžným použitím resourceGroup() funkce je vytvoření prostředků ve stejném umístění jako artefakt skupiny prostředků.

Příklad

Pokud chcete použít umístění skupiny prostředků, nastavte v definici podrobného plánu nebo během přiřazení jako umístění jiného artefaktu deklarujte zástupný objekt skupiny prostředků v definici podrobného plánu. V tomto příkladu je název zástupného symbolu skupiny prostředků NetworkingPlaceholder .

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Pak použijte resourceGroup() funkci v kontextu artefaktu podrobného plánu, který cílí na zástupný objekt skupiny prostředků. V tomto příkladu se artefakt šablony nasadí do skupiny prostředků NetworkingPlaceholder a poskytne parametr resourceLocation dynamicky naplněný umístěním skupiny prostředků NetworkingPlaceholder do šablony. Umístění skupiny prostředků NetworkingPlaceholder mohlo být staticky definované v definici podrobného plánu nebo dynamicky definované během přiřazení. V obou případech se artefakt šablony poskytne jako parametr a použije je k nasazení prostředků do správného umístění.

{
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "kind": "template",
  "properties": {
      "template": {
        ...
      },
      "resourceGroup": "NetworkingPlaceholder",
      ...
      "parameters": {
        "resourceLocation": {
          "value": "[resourceGroup().location]"
        }
      }
  }
}

skupiny prostředků

resourceGroups(placeholderName)

Vrátí objekt, který představuje zadaný artefakt skupiny prostředků. Na rozdíl od resourceGroup()objektu , který vyžaduje kontext artefaktu, se tato funkce používá k získání vlastností zástupného symbolu konkrétní skupiny prostředků, pokud není v kontextu této skupiny prostředků.

Parametry

Parametr Povinné Typ Description
zástupný název Yes řetězec Zástupný název artefaktu skupiny prostředků, který se má vrátit.

Vrácená hodnota

Vrácený objekt je v následujícím formátu:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Příklad

Pokud chcete použít umístění skupiny prostředků, nastavte v definici podrobného plánu nebo během přiřazení jako umístění jiného artefaktu deklarujte zástupný objekt skupiny prostředků v definici podrobného plánu. V tomto příkladu je název zástupného symbolu skupiny prostředků NetworkingPlaceholder .

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Pak pomocí resourceGroups() funkce z kontextu jakéhokoli artefaktu podrobného plánu získejte odkaz na zástupný objekt skupiny prostředků. V tomto příkladu se artefakt šablony nasadí mimo skupinu prostředků NetworkingPlaceholder a poskytuje parametr artifactLocation dynamicky naplněný umístěním skupiny prostředků NetworkingPlaceholder do šablony. Umístění skupiny prostředků NetworkingPlaceholder mohlo být staticky definované v definici podrobného plánu nebo dynamicky definované během přiřazení. V obou případech se artefakt šablony poskytne jako parametr a použije je k nasazení prostředků do správného umístění.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "artifactLocation": {
          "value": "[resourceGroups('NetworkingPlaceholder').location]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

předplatné

subscription()

Vrátí podrobnosti o předplatném pro aktuální přiřazení podrobného plánu.

Vrácená hodnota

Vrácený objekt je v následujícím formátu:

{
    "id": "/subscriptions/{subscriptionId}",
    "subscriptionId": "{subscriptionId}",
    "tenantId": "{tenantId}",
    "displayName": "{name-of-subscription}"
}

Příklad

Pomocí zobrazovaného názvu předplatného a concat() funkce vytvořte konvenci vytváření názvů předanou jako parametr resourceName artefaktu šablony.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "resourceName": {
          "value": "[concat(subscription().displayName, '-vm')]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

Další kroky