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