Az Azure Blueprintshez használható függvények

Fontos

2026. július 11-én a tervek (előzetes verzió) elavultak lesznek. Migrálja a meglévő tervdefiníciókat és -hozzárendeléseket sablonspecifikációkba és üzembehelyezési vermekbe. A tervösszetevőket ARM JSON-sablonokká vagy Bicep-fájlokká kell konvertálni az üzembehelyezési veremek definiálásához. Az összetevők ARM-erőforrásként való létrehozásának módjáról az alábbiakban olvashat:

Az Azure Blueprints olyan függvényeket biztosít, amely dinamikusabbá teszi a tervdefiníciókat. Ezek a függvények tervdefiníciókhoz és tervösszetevőkhöz használhatók. Az Azure Resource Manager Template (ARM-sablon) összetevő támogatja a Resource Manager függvények teljes körű használatát amellett, hogy dinamikus értéket kap egy tervparaméteren keresztül.

A következő függvények támogatottak:

Leletek

artifacts(artifactName)

A tervösszetevők kimeneteivel kitöltött tulajdonságok objektumát adja vissza.

Megjegyzés

A artifacts() függvény nem használható ARM-sablonból. A függvény csak a tervdefiníció JSON-ban vagy az összetevő JSON-ban használható, amikor a tervet Azure PowerShell vagy REST API-val kezeli a Blueprints-as-code részeként.

Paraméterek

Paraméter Kötelező Típus Description
artifactName Yes sztring Tervösszetevő neve.

Visszatérési érték

Kimeneti tulajdonságokat tartalmazó objektum. A kimenetek tulajdonságai a hivatkozott tervösszetevő típusától függenek. Minden típus a következő formátumot követi:

{
  "outputs": {collectionOfOutputProperties}
}

Szabályzat-hozzárendelési összetevő

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

ARM-sablonösszetevő

A visszaadott objektum kimeneti tulajdonságai az ARM-sablonban vannak definiálva, és az üzembe helyezés adja vissza.

Szerepkör-hozzárendelési összetevő

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

Példa

A myTemplateArtifact azonosítójú ARM-sablonösszetevő, amely a következő kimeneti mintatulajdonságot tartalmazza:

{
    "$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éhány példa a myTemplateArtifact-minta adatainak beolvasására:

Expression Típus Érték
[artifacts("myTemplateArtifact").outputs.myArray] Tömb ["first", "second"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] Sztring "első"
[artifacts("myTemplateArtifact").outputs.myString] Sztring "saját sztringérték"
[artifacts("myTemplateArtifact").outputs.myObject] Objektum { "myproperty": "my value", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] Sztring "saját érték"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Logikai Igaz

Concat

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

Több sztringértéket egyesít, és visszaadja az összefűzött sztringet.

Paraméterek

Paraméter Kötelező Típus Description
sztring1 Yes sztring Az összefűzés első értéke.
további argumentumok No sztring További értékek szekvenciális sorrendben az összefűzéshez

Visszatérési érték

Összefűzött értékek sztringje.

Megjegyzések

Az Azure Blueprints függvény abban különbözik az ARM-sablonfüggvénytől, hogy csak sztringekkel működik.

Példa

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

parameters

parameters(parameterName)

Tervparaméter-értéket ad vissza. A megadott paraméternevet a tervdefinícióban vagy a tervösszetevőkben kell definiálni.

Paraméterek

Paraméter Kötelező Típus Description
parameterName Yes sztring A visszaadandó paraméter neve.

Visszatérési érték

A megadott terv- vagy tervösszetevő-paraméter értéke.

Megjegyzések

Az Azure Blueprints függvény abban különbözik az ARM-sablonfüggvénytől, hogy csak tervparaméterekkel működik.

Példa

Paraméternévazonosítók definiálása a tervdefinícióban:

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

Ezután használja a principalIds argumentumot parameters() a tervösszetevőben:

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

resourceGroup

resourceGroup()

Az aktuális erőforráscsoportot képviselő objektumot ad vissza.

Visszatérési érték

A visszaadott objektum formátuma a következő:

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

Megjegyzések

Az Azure Blueprints függvény eltér az ARM-sablonfüggvénytől. A resourceGroup() függvény nem használható előfizetési szintű összetevőben vagy tervdefinícióban. Csak olyan tervösszetevőkben használható, amelyek egy erőforráscsoport-összetevő részei.

A függvény gyakran használja az resourceGroup() erőforrásokat az erőforráscsoport-összetevővel azonos helyen.

Példa

Az erőforráscsoport helyének használatához állítsa be a tervdefinícióban vagy a hozzárendelés során egy másik összetevő helyeként, deklaráljon egy erőforráscsoport helyőrző objektumot a tervdefinícióban. Ebben a példában a NetworkingPlaceholder az erőforráscsoport helyőrzőjének neve.

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

Ezután használja a resourceGroup() függvényt egy olyan tervösszetevő kontextusában, amely egy erőforráscsoport helyőrző objektumát célozza. Ebben a példában a sablonösszetevő a NetworkingPlaceholder erőforráscsoportban lesz üzembe helyezve, és dinamikusan kitölti a resourceLocation paramétert a NetworkingPlaceholder erőforráscsoport helyével a sablonhoz. A NetworkingPlaceholder erőforráscsoport helyét statikusan definiálhatták a tervdefinícióban, vagy dinamikusan definiálhatták a hozzárendelés során. A sablonösszetevő mindkét esetben paraméterként van megadva, és az erőforrások megfelelő helyen való üzembe helyezéséhez használja.

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

resourceGroups

resourceGroups(placeholderName)

A megadott erőforráscsoport-összetevőt képviselő objektumot ad vissza. Az összetevő kontextusát igénylő függvénnyel ellentétben resourceGroup()ez a függvény egy adott erőforráscsoport helyőrzőjének tulajdonságainak lekérésére szolgál, ha nem az adott erőforráscsoport környezetében.

Paraméterek

Paraméter Kötelező Típus Description
placeholderName Yes sztring A visszaadni kívánt erőforráscsoport-összetevő helyőrző neve.

Visszatérési érték

A visszaadott objektum formátuma a következő:

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

Példa

Az erőforráscsoport helyének használatához állítsa be a tervdefinícióban vagy a hozzárendelés során egy másik összetevő helyeként, deklaráljon egy erőforráscsoport helyőrző objektumot a tervdefinícióban. Ebben a példában a NetworkingPlaceholder az erőforráscsoport helyőrzőjének neve.

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

Ezután használja a resourceGroups() függvényt bármely tervösszetevő környezetéből az erőforráscsoport helyőrző objektumára mutató hivatkozás lekéréséhez. Ebben a példában a sablonösszetevő a NetworkingPlaceholder erőforráscsoporton kívül lesz üzembe helyezve, és dinamikusan kitölti a NetworkingPlaceholder erőforráscsoport helyével a sablonhoz tartozó ArtifactLocation paramétert. A NetworkingPlaceholder erőforráscsoport helyét statikusan definiálhatták a tervdefinícióban, vagy dinamikusan definiálhatták a hozzárendelés során. A sablonösszetevő mindkét esetben paraméterként van megadva, és az erőforrások megfelelő helyen való üzembe helyezéséhez használja.

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

előfizetést

subscription()

Az aktuális tervhozzárendeléshez tartozó előfizetés adatait adja vissza.

Visszatérési érték

A visszaadott objektum formátuma a következő:

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

Példa

Használja az előfizetés megjelenítendő nevét és a concat() függvényt egy resourceName paraméterként átadott elnevezési konvenció létrehozásához a sablonösszetevőnek.

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

További lépések