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:
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.
Parametr | Povinné | Typ | Description |
---|---|---|---|
artifactName | Yes | řetězec | Název artefaktu podrobného plánu. |
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}
}
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Vlastnosti výstupů vráceného objektu jsou definovány v šabloně ARM a vráceny nasazením.
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
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(string1, string2, string3, ...)
Zkombinuje více řetězcových hodnot a vrátí zřetězený řetězec.
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í |
Řetězec zřetězených hodnot.
Funkce Azure Blueprints se od funkce šablony ARM liší tím, že funguje pouze s řetězci.
concat(parameters('organizationName'), '-vm')
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.
Parametr | Povinné | Typ | Description |
---|---|---|---|
Parametername | Yes | řetězec | Název parametru, který se má vrátit. |
Hodnota zadaného parametru podrobného plánu nebo artefaktu podrobného plánu.
Funkce Azure Blueprints se liší od funkce šablony ARM v tom, že funguje pouze s parametry podrobného plánu.
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()
Vrátí objekt, který představuje aktuální skupinu prostředků.
Vrácený objekt je v následujícím formátu:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
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ů.
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]"
}
}
}
}
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ů.
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ý objekt je v následujícím formátu:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
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"
}
subscription()
Vrátí podrobnosti o předplatném pro aktuální přiřazení podrobného plánu.
Vrácený objekt je v následujícím formátu:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
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ší 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íží