Funkcje do użycia z Azure Blueprints

Ważna

Azure Blueprints (Podgląd) zostanie wycofany 31 stycznia 2027 roku, z etapowym wycofywaniem rozpoczynającym się 31 lipca 2026 roku. Migruj istniejące definicje i przypisania blueprintów do stosów wdrożeń (zalecane) oraz specyfikacji szablonów. Artefakty blueprintów są konwertowane na szablony JSON ARM lub pliki Bicep używane do definiowania stosów wdrożeń. Pełną fazowaną oś czasu, wpływ i FAQ można znaleźć w sekcji Azure Blueprints retirement lub https://aka.ms/AzureBlueprintsRetirement. Aby dowiedzieć się, jak utworzyć artefakt jako zasób ARM, sprawdź:

Azure Blueprints oferuje funkcje czynią definicję blueprintu bardziej dynamiczną. Funkcje te są przeznaczone do użycia z definicjami planów i artefaktami planów. Artefakt szablonu Azure Resource Manager (ARM template) wspiera pełne wykorzystanie funkcji Resource Manager, a także umożliwia uzyskanie wartości dynamicznej za pomocą parametru blueprint.

Obsługiwane są następujące funkcje:

artifacts

artifacts(artifactName)

Zwraca obiekt właściwości wypełnionych tymi artefaktami blueprintu.

Note

Funkcja nie artifacts() może być używana z wewnątrz szablonu ARM. Funkcja ta może być używana wyłącznie w definicji blueprintu JSON lub w artifact JSON podczas zarządzania blueprintem za pomocą Azure PowerShell lub REST API jako części Blueprints-as-code.

Parametry

Parameter Obowiązkowy Typ Description
artifactName Yes ciąg Nazwa artefaktu planowego.

Wartość zwracana

Obiekt o właściwościach wyjściowych. Właściwości wyjściowe zależą od rodzaju artefaktu blueprintu, do którego się odwołuje. Wszystkie typy podążają za tym formatem:

{
  "outputs": {collectionOfOutputProperties}
}

Artefakt przypisania polityki

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

Artefakt szablonu ARM

Właściwości wyjściowe zwróconego obiektu są definiowane w szablonie ARM i zwracane przez wdrożenie.

Artefakt przypisania roli

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

Przykład

Artefakt szablonu ARM z identyfikatorem myTemplateArtifact zawierający następującą próbkową właściwość wyjściową:

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

Przykłady pobierania danych z próbki myTemplateArtifact to:

Expression Typ Value
[artifacts("myTemplateArtifact").outputs.myArray] Tablica ["pierwszy", "drugi"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] String "Pierwszy"
[artifacts("myTemplateArtifact").outputs.myString] String "Moja wartość struny"
[artifacts("myTemplateArtifact").outputs.myObject] Object { "myproperty": "moja wartość", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] String "Moja wartość"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] bool True

concat

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

Łączy wiele wartości ciągu i zwraca związany ciąg znaków.

Parametry

Parameter Obowiązkowy Typ Description
ciąg1 Yes ciąg Pierwsza wartość dla łączenia się.
argumenty dodatkowe No ciąg Dodatkowe wartości w kolejności sekwencyjnej dla konkatenacji

Wartość zwracana

Ciąg skatowanych wartości.

Remarks

Funkcja Azure Blueprints różni się od funkcji szablonu ARM tym, że działa tylko ze znakami znaków.

Przykład

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

parameters

parameters(parameterName)

Zwraca wartość parametru blueprint. Określona nazwa parametru musi być zdefiniowana w definicji blueprintu lub w artefaktach blueprintu.

Parametry

Parameter Obowiązkowy Typ Description
nazwa parametru Yes ciąg Nazwa parametru do zwrócenia.

Wartość zwracana

Wartość określonego parametru niebieskiego lub artefaktu projektu.

Remarks

Funkcja Azure Blueprints różni się od funkcji szablonu ARM tym, że działa tylko z parametrami blueprintów.

Przykład

Zdefiniuj principalIds parametrów w definicji blueprintu:

{
    "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"
                }
            }
        },
        ...
    }
}

Następnie użyj principalIds jako argumentu dla w parameters() artefaktie blueprintu:

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

resourceGroup

resourceGroup()

Zwraca obiekt reprezentujący aktualną grupę zasobów.

Wartość zwracana

Zwrócony obiekt ma następujący format:

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

Remarks

Funkcja Azure Blueprints różni się od funkcji szablonu ARM. Funkcja nie może być użyta resourceGroup() w artefakcie na poziomie subskrypcji ani w definicji blueprintu. Może być używany tylko w artefaktach blueprintów będących częścią artefaktu grupy zasobów.

Powszechnym zastosowaniem resourceGroup() tej funkcji jest tworzenie zasobów w tym samym miejscu co artefakt grupy zasobów.

Przykład

Aby użyć lokalizacji grupy zasobów, ustawionej w definicji blueprintu lub podczas przypisania, jako lokalizacji innego artefaktu, zadeklaruj obiekt zastępczy grupy zasobów w swojej definicji blueprintu. W tym przykładzie NetworkingPlaceholder to nazwa zastępczego miejsca grupy zasobów.

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

Następnie użyj tej resourceGroup() funkcji w kontekście artefaktu blueprint, który celuje w obiekt zastępczy grupy zasobów. W tym przykładzie artefakt szablonu jest wdrażany do grupy zasobów NetworkingPlaceholder i dostarcza parametr resourceLocation dynamicznie wypełniany lokalizacją grupy zasobów NetworkingPlaceholder do szablonu. Lokalizacja grupy zasobów NetworkingPlaceholder mogła być statycznie zdefiniowana na definicji blueprintu lub dynamicznie podczas przypisania. W obu przypadkach artefakt szablonu otrzymuje tę informację jako parametr i wykorzystuje ją do rozmieszczenia zasobów we właściwym miejscu.

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

resourceGroups

resourceGroups(placeholderName)

Zwraca obiekt reprezentujący określony artefakt grupy zasobów. W przeciwieństwie do , który wymaga kontekstu resourceGroup()artefaktu, funkcja ta służy do uzyskania właściwości konkretnej grupy zasobów zastępczej, gdy nie znajduje się w kontekście tej grupy.

Parametry

Parameter Obowiązkowy Typ Description
placeholderNazwa Yes ciąg Tymczasowa nazwa artefaktu grupy zasobów do zwrotu.

Wartość zwracana

Zwrócony obiekt ma następujący format:

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

Przykład

Aby użyć lokalizacji grupy zasobów, ustawionej w definicji blueprintu lub podczas przypisania, jako lokalizacji innego artefaktu, zadeklaruj obiekt zastępczy grupy zasobów w swojej definicji blueprintu. W tym przykładzie NetworkingPlaceholder to nazwa zastępczego miejsca grupy zasobów.

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

Następnie użyj resourceGroups() funkcji z kontekstu dowolnego artefaktu blueprint, aby uzyskać odwołanie do obiektu zastępczego grupy zasobów. W tym przykładzie artefakt szablonu jest wdrażany poza grupą zasobów NetworkingPlaceholder i dostarcza parametrów artifactLocation dynamicznie uzupełnianych lokalizacją grupy zasobów NetworkingPlaceholder do szablonu. Lokalizacja grupy zasobów NetworkingPlaceholder mogła być statycznie zdefiniowana na definicji blueprintu lub dynamicznie podczas przypisania. W obu przypadkach artefakt szablonu otrzymuje tę informację jako parametr i wykorzystuje ją do rozmieszczenia zasobów we właściwym miejscu.

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

abonament

subscription()

Zwraca szczegóły dotyczące subskrypcji aktualnego zadania blueprint.

Wartość zwracana

Zwrócony obiekt ma następujący format:

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

Przykład

Użyj nazwy wyświetlania subskrypcji oraz concat() funkcji, aby stworzyć konwencję nazewnictwa przekazywaną jako parameter resourceName do artefaktu szablonu.

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

Następne kroki