Funkcje do użycia z usługą Azure Blueprints
Ważne
11 lipca 2026 r. strategia (wersja zapoznawcza) zostanie wycofana. Przeprowadź migrację istniejących definicji strategii i przypisań do szablonów specyfikacji i stosów wdrażania. Artefakty strategii mają być konwertowane na szablony JSON usługi ARM lub pliki Bicep używane do definiowania stosów wdrażania. Aby dowiedzieć się, jak utworzyć artefakt jako zasób usługi ARM, zobacz:
Usługa Azure Blueprints udostępnia funkcje, dzięki czemu definicja strategii jest bardziej dynamiczna. Te funkcje są używane z definicjami strategii i artefaktami strategii. Artefakt szablonu usługi Azure Resource Manager (szablon usługi ARM) obsługuje pełne użycie funkcji Resource Manager oprócz pobierania wartości dynamicznej za pomocą parametru strategii.
Obsługiwane są następujące funkcje:
Artefakty
artifacts(artifactName)
Zwraca obiekt właściwości wypełniony za pomocą tych artefaktów strategii wyjściowych.
Uwaga
Nie artifacts()
można użyć funkcji z poziomu szablonu usługi ARM. Funkcja może być używana tylko w formacie JSON definicji strategii lub w formacie JSON artefaktu podczas zarządzania strategią przy użyciu Azure PowerShell lub interfejsu API REST w ramach kodu Blueprints-as-code.
Parametry
Parametr | Wymagane | Typ | Opis |
---|---|---|---|
artifactName | Tak | ciąg | Nazwa artefaktu strategii. |
Wartość zwracana
Obiekt właściwości wyjściowych. Właściwości danych wyjściowych zależą od typu przywoływanego artefaktu strategii. Wszystkie typy są zgodne z formatem:
{
"outputs": {collectionOfOutputProperties}
}
Artefakt przypisania zasad
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Artefakt szablonu usługi ARM
Właściwości wyjściowe zwracanego obiektu są definiowane w szablonie usługi 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 usługi ARM z identyfikatorem myTemplateArtifact zawierającym następującą przykładową 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
}
}
}
}
Oto kilka przykładów pobierania danych z przykładu myTemplateArtifact :
Wyrażenie | Typ | Wartość |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Tablica | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
Ciąg | "first" |
[artifacts("myTemplateArtifact").outputs.myString] |
Ciąg | "moja wartość ciągu" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Obiekt | { "myproperty": "moja wartość", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
Ciąg | "moja wartość" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Wartość logiczna | Prawda |
concat
concat(string1, string2, string3, ...)
Łączy wiele wartości ciągów i zwraca połączony ciąg.
Parametry
Parametr | Wymagane | Typ | Opis |
---|---|---|---|
ciąg1 | Tak | ciąg | Pierwsza wartość łączenia. |
dodatkowe argumenty | Nie | ciąg | Dodatkowe wartości w kolejności sekwencyjnej dla łączenia |
Wartość zwracana
Ciąg połączonych wartości.
Uwagi
Funkcja Azure Blueprints różni się od funkcji szablonu usługi ARM, ponieważ działa tylko z ciągami.
Przykład
concat(parameters('organizationName'), '-vm')
parameters
parameters(parameterName)
Zwraca wartość parametru strategii. Określona nazwa parametru musi być zdefiniowana w definicji strategii lub w artefaktach strategii.
Parametry
Parametr | Wymagane | Typ | Opis |
---|---|---|---|
Parametername | Tak | ciąg | Nazwa parametru do zwrócenia. |
Wartość zwracana
Wartość określonego parametru strategii lub artefaktu strategii.
Uwagi
Funkcja Azure Blueprints różni się od funkcji szablonu usługi ARM, ponieważ działa tylko z parametrami strategii.
Przykład
Zdefiniuj identyfikatory principalId parametrów w definicji strategii:
{
"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 identyfikatorów principalId jako argumentu w parameters()
artefaktie strategii:
{
"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 bieżącą grupę zasobów.
Wartość zwracana
Zwrócony obiekt ma następujący format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Uwagi
Funkcja Azure Blueprints różni się od funkcji szablonu usługi ARM. Nie resourceGroup()
można użyć funkcji w artefaktie na poziomie subskrypcji ani definicji strategii. Można go używać tylko w artefaktach strategii, które są częścią artefaktu grupy zasobów.
Typowym zastosowaniem resourceGroup()
funkcji jest utworzenie zasobów w tej samej lokalizacji co artefakt grupy zasobów.
Przykład
Aby użyć lokalizacji grupy zasobów, ustaw w definicji strategii lub podczas przypisywania, jako lokalizację innego artefaktu, zadeklaruj obiekt zastępczy grupy zasobów w definicji strategii. W tym przykładzie element NetworkingPlaceholder jest nazwą symbolu zastępczego grupy zasobów.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Następnie użyj resourceGroup()
funkcji w kontekście artefaktu strategii, który jest przeznaczony dla obiektu zastępczego grupy zasobów. W tym przykładzie artefakt szablonu jest wdrażany w grupie zasobów NetworkingPlaceholder i zapewnia zasób parametruLokalizacja dynamicznie wypełniana lokalizacją grupy zasobów NetworkingPlaceholder do szablonu. Lokalizacja grupy zasobów NetworkingPlaceholder mogła zostać statycznie zdefiniowana w definicji strategii lub dynamicznie zdefiniowana podczas przypisywania. W obu przypadkach artefakt szablonu jest dostarczany jako parametr i używa go do wdrożenia zasobów w odpowiedniej lokalizacji.
{
"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 resourceGroup()
elementu , który wymaga kontekstu artefaktu, ta funkcja służy do pobierania właściwości określonego symbolu zastępczego grupy zasobów, gdy nie w kontekście tej grupy zasobów.
Parametry
Parametr | Wymagane | Typ | Opis |
---|---|---|---|
symbol zastępczyName | Tak | ciąg | Nazwa symbolu zastępczego artefaktu grupy zasobów do zwrócenia. |
Wartość zwracana
Zwrócony obiekt ma następujący format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Przykład
Aby użyć lokalizacji grupy zasobów, ustaw w definicji strategii lub podczas przypisywania, jako lokalizację innego artefaktu, zadeklaruj obiekt zastępczy grupy zasobów w definicji strategii. W tym przykładzie element NetworkingPlaceholder jest nazwą symbolu zastępczego grupy zasobów.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Następnie użyj resourceGroups()
funkcji z kontekstu dowolnego artefaktu strategii, 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 zapewnia artefakt parametruLokalizacja dynamicznie wypełniana lokalizacją grupy zasobów NetworkingPlaceholder do szablonu. Lokalizacja grupy zasobów NetworkingPlaceholder mogła zostać statycznie zdefiniowana w definicji strategii lub dynamicznie zdefiniowana podczas przypisywania. W obu przypadkach artefakt szablonu jest dostarczany jako parametr i używa go do wdrożenia zasobów w odpowiedniej lokalizacji.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
subskrypcja
subscription()
Zwraca szczegółowe informacje o subskrypcji dla bieżącego przypisania strategii.
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świetlanej subskrypcji i concat()
funkcji, aby utworzyć konwencję nazewnictwa przekazaną jako resourceName parametru do artefaktu szablonu.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Następne kroki
- Uzyskaj informacje na temat cyklu życia strategii.
- Dowiedz się, jak używać parametrów statycznych i dynamicznych.
- Dowiedz się, jak dostosować kolejność sekwencjonowania strategii.
- Dowiedz się, jak używać blokowania zasobów strategii.
- Dowiedz się, jak zaktualizować istniejące przypisania.
- Rozwiązywanie problemów podczas przypisywania strategii za pomocą ogólnych procedur rozwiązywania problemów.