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
- Další informace o životním cyklu podrobného plánu
- Principy použití statických a dynamických parametrů
- Další informace o přizpůsobení pořadí podrobných plánů
- Použití zamykání prostředků podrobného plánu
- Další informace o aktualizaci existujících přiřazení
- Řešení potíží při přiřazení podrobného plánu – obecné řešení potíží