Funkce pro použití s plány Azure
Azure modrotisky nabízí funkce, které mají dynamičtější definice podrobného plánu. Tyto funkce jsou pro použití s definicemi podrobného plánu a s artefakty podrobného plánu. Artefakt šablony Azure Resource Manager (šablona ARM) podporuje kromě získání dynamické hodnoty prostřednictvím parametru podrobného plánu úplné použití funkcí Správce prostředků.
Podporovány jsou následující funkce:
artefakty
artifacts(artifactName)
Vrátí objekt vlastností naplněný pomocí tohoto výstupu artefaktů podrobného plánu.
Poznámka
artifacts()Funkci nelze použít v rámci šablony ARM. funkci lze použít pouze v kódu json definice podrobného plánu nebo v kódu json artefaktu při správě podrobnéhoplánu pomocí Azure PowerShell nebo REST API jako součást podrobných plánů kódu.
Parametry
| Parametr | Povinné | Typ | Popis |
|---|---|---|---|
| artefakt | Yes | řetězec | Název artefaktu podrobného plánu |
Vrácená hodnota
Objekt vlastností výstupu. Vlastnosti výstupy jsou závislé na typu odkazovaného artefaktu podrobného plánu. Všechny typy mají následující 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 rámci šablony ARM a vráceny v nasazení.
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 vlastnost output:
{
"$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
}
}
}
}
Některé příklady načítání dat z ukázky myTemplateArtifact jsou:
| Výraz | Typ | Hodnota |
|---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Pole | ["First"; "Second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
Řetězec | první |
[artifacts("myTemplateArtifact").outputs.myString] |
Řetězec | "moje hodnota řetězce" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Objekt | {"MyProperty": "moje hodnota", "anotherProperty": true} |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
Řetězec | "moje hodnota" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Logická hodnota | Ano |
concat
concat(string1, string2, string3, ...)
Kombinuje více řetězcových hodnot a vrátí zřetězený řetězec.
Parametry
| Parametr | Povinné | Typ | Popis |
|---|---|---|---|
| řetězec1 | Yes | řetězec | První hodnota pro zřetězení |
| Další argumenty | Ne | ř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 modrotisky se liší od funkce šablony ARM v tom, ž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 | Popis |
|---|---|---|---|
| parameterName | Yes | řetězec | Název parametru, který se má vrátit. |
Vrácená hodnota
Hodnota zadaného parametru artefaktu podrobného plánu nebo podrobného plánu
Poznámky
Funkce Azure modrotisky se liší od funkce šablony ARM v tom, že funguje pouze s parametry podrobného plánu.
Příklad
Definujte parametr principalIds v definici podrobného plánu:
{
"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 použijte principalIds jako argument pro artefakt podrobného plánu parameters() :
{
"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 modrotisky se liší od funkce šablony ARM. resourceGroup()Funkci nelze použít v artefaktu na úrovni předplatného nebo 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řit prostředky ve stejném umístění jako artefakt skupiny prostředků.
Příklad
Pokud chcete použít umístění skupiny prostředků, nastavte buď v definici podrobného plánu, nebo během přiřazení jako umístění pro jiný artefakt, deklarujte v definici podrobného plánu zástupný objekt skupiny prostředků. V tomto příkladu je zástupný symbol skupiny prostředků NetworkingPlaceholder.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Pak funkci použijte v kontextu artefaktu podrobného plánu, který cílí resourceGroup() na zástupný objekt skupiny prostředků. V tomto příkladu je artefakt šablony nasazený do skupiny prostředků NetworkingPlaceholder a poskytuje 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 artefakt šablony poskytuje tyto informace jako parametr a používá 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 (skupiny prostředků)
resourceGroups(placeholderName)
Vrátí objekt, který představuje artefakt zadané skupiny prostředků. Na rozdíl od funkce , 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 resourceGroup() této skupiny prostředků.
Parametry
| Parametr | Povinné | Typ | Popis |
|---|---|---|---|
| název zástupného symbolu | 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 buď v definici podrobného plánu, nebo během přiřazení jako umístění pro jiný artefakt, deklarujte v definici podrobného plánu zástupný objekt skupiny prostředků. V tomto příkladu je zástupný symbol skupiny prostředků NetworkingPlaceholder.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Pak pomocí funkce z kontextu artefaktu podrobného plánu získejte odkaz na zástupný resourceGroups() objekt skupiny prostředků. V tomto příkladu je artefakt šablony nasazen 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 artefakt šablony poskytuje tyto informace jako parametr a používá 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ý název předplatného a funkce vytvořte zásady vytváření názvů předané artefaktu šablony jako parametr concat() resourceName.
{
"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íží