Udostępnij przez


Funkcje wdrażania dla szablonów usługi ARM

Usługa Azure Resource Manager udostępnia następujące funkcje umożliwiające uzyskiwanie wartości związanych z bieżącym wdrożeniem szablonu usługi Azure Resource Manager (szablon arm):

Aby uzyskać wartości z zasobów, grup zasobów lub subskrypcji, zobacz Funkcje zasobów.

Tip

Bicep jest zalecany, ponieważ oferuje te same możliwości co szablony ARM, a jego składnia jest łatwiejsza do użycia. Aby dowiedzieć się więcej, zobacz deployment funkcje.

deployer

deployer()

Zwraca informacje dotyczące bieżącego podmiotu zabezpieczeń wdrożenia.

W Bicep użyj deployer funkcji .

Wartość zwracana

Ta funkcja zwraca informacje o bieżącej jednostce wdrożenia, w tym identyfikatorze dzierżawy, identyfikatorze obiektu i głównej nazwie użytkownika:

{
  "objectId": "",
  "tenantId": "",
  "userPrincipalName": ""
}

Example

Poniższy przykład zwraca obiekt modułu wdrażania:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "developerOutput": {
      "type": "object",
      "value": "[deployer()]"
    }
  }
}

Powyższy przykład zwraca następujący obiekt:

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

wdrażanie

deployment()

Zwraca informacje o bieżącej operacji wdrażania.

W Bicep użyj deployment funkcji .

Wartość zwracana

Ta funkcja zwraca obiekt przekazany podczas wdrażania. Właściwości zwróconego obiektu różnią się w zależności od tego, czy:

  • Wdrażanie szablonu lub specyfikacji szablonu.
  • Wdrażanie szablonu, który jest plikiem lokalnym lub wdrażaniem szablonu, który jest plikiem zdalnym dostępnym za pośrednictwem identyfikatora URI.
  • Wdrażanie w grupie zasobów lub wdrażanie w jednym z innych zakresów (subskrypcja platformy Azure, grupy zarządzania lub dzierżawy).

Podczas wdrażania szablonu lokalnego w grupie zasobów funkcja zwraca następujący format:

{
  "name": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Jeśli szablon jest zdalny, templateLink właściwość jest uwzględniona w zwracanym obiekcie. Właściwość templateLink zawiera identyfikator URI szablonu. Format to:

{
  "name": "",
  "properties": {
    "templateLink": {
      "uri": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Aby uzyskać więcej informacji, zobacz Używanie zmiennych do łączenia szablonów.

Podczas wdrażania specyfikacji szablonu w grupie zasobów funkcja zwraca następujący format:

{
  "name": "",
  "properties": {
    "templateLink": {
      "id": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Podczas wdrażania w subskrypcji platformy Azure, grupie zarządzania lub dzierżawie obiekt zwracany location zawiera właściwość. Właściwość lokalizacji jest uwzględniana podczas wdrażania szablonu lokalnego lub szablonu zewnętrznego. Format to:

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Podczas wdrażania szablonu deployment funkcja zwraca ograniczony podzestaw właściwości:

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "contentVersion": "",
      "metadata": {}
    },
    "templateLink": {
      "id": "",
      "uri": ""
    }
  }
}

Właściwość location jest uwzględniana tylko w przypadku wdrożeń w zakresie subskrypcji, grupy zarządzania lub dzierżawy . Właściwość templateLink jest dołączana tylko wtedy, gdy użytkownik udostępnia połączony szablon, a nie wbudowany szablon.

Remarks

Możesz użyć deployment() polecenia , aby połączyć się z innym szablonem na podstawie identyfikatora URI szablonu nadrzędnego:

"variables": {
  "sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}

Jeśli ponownie wdrożysz szablon z historii wdrażania w portalu, szablon zostanie wdrożony jako plik lokalny. Właściwość templateLink nie jest zwracana w funkcji wdrażania. Jeśli szablon opiera się na templateLink konstruowaniu linku do innego szablonu, nie używaj portalu do ponownego wdrażania. Zamiast tego użyj poleceń użytych do pierwotnie wdrożenia szablonu.

Example

Poniższy przykład zwraca obiekt wdrożenia:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "deploymentOutput": {
      "type": "object",
      "value": "[deployment()]"
    }
  }
}

Powyższy przykład zwraca następujący obiekt:

{
  "name": "deployment",
  "properties": {
    "template": {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "resources": [],
      "outputs": {
        "deploymentOutput": {
          "type": "Object",
          "value": "[deployment()]"
        }
      }
    },
    "templateHash": "13135986259522608210",
    "parameters": {},
    "mode": "Incremental",
    "provisioningState": "Accepted"
  }
}

W przypadku wdrożenia subskrypcji poniższy przykład zwraca obiekt wdrożenia:

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {
    "exampleOutput": {
      "type": "object",
      "value": "[deployment()]"
    }
  }
}

środowisko

environment()

Zwraca informacje o środowisku platformy Azure używanym do wdrożenia. Funkcja environment() nie zna konfiguracji zasobów. Może zwracać tylko jeden domyślny sufiks DNS dla każdego typu zasobu.

W Bicep użyj environment funkcji .

Remarks

Aby wyświetlić listę zarejestrowanych środowisk dla twojego konta, użyj polecenia az cloud list lub Get-AzEnvironment.

Wartość zwracana

Ta funkcja zwraca właściwości dla bieżącego środowiska platformy Azure. W poniższym przykładzie przedstawiono właściwości globalnej platformy Azure. Suwerenne chmury mogą zwracać nieco inne właściwości:

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

Example

Poniższy przykładowy szablon zwraca obiekt środowiska:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "environmentOutput": {
      "type": "object",
      "value": "[environment()]"
    }
  }
}

Powyższy przykład zwraca następujący obiekt podczas wdrażania na globalnej platformie Azure:

{
  "name": "AzureCloud",
  "gallery": "https://gallery.azure.com/",
  "graph": "https://graph.windows.net/",
  "portal": "https://portal.azure.com",
  "graphAudience": "https://graph.windows.net/",
  "activeDirectoryDataLake": "https://datalake.azure.net/",
  "batch": "https://batch.core.windows.net/",
  "media": "https://rest.media.azure.net",
  "sqlManagement": "https://management.core.windows.net:8443/",
  "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
  "resourceManager": "https://management.azure.com/",
  "authentication": {
    "loginEndpoint": "https://login.microsoftonline.com/",
    "audiences": [
      "https://management.core.windows.net/",
      "https://management.azure.com/"
    ],
    "tenant": "common",
    "identityProvider": "AAD"
  },
  "suffixes": {
    "acrLoginServer": ".azurecr.io",
    "azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
    "azureDatalakeStoreFileSystem": "azuredatalakestore.net",
    "azureFrontDoorEndpointSuffix": "azurefd.net",
    "keyvaultDns": ".vault.azure.net",
    "sqlServerHostname": ".database.windows.net",
    "storage": "core.windows.net"
  }
}

parameters

parameters(parameterName)

Zwraca wartość parametru. Określona nazwa parametru musi być zdefiniowana w sekcji parameters szablonu.

W Bicep bezpośrednio odwołują się do parametrów przy użyciu ich nazw symbolicznych.

Parameters

Parameter Required Typ Description
parameterName Yes ciąg Nazwa parametru do zwrócenia.

Wartość zwracana

Wartość określonego parametru.

Remarks

Zazwyczaj parametry służą do ustawiania wartości zasobów. W poniższym przykładzie nazwa witryny internetowej jest ustawiana na wartość parametru przekazaną podczas wdrażania.

"parameters": {
  "siteName": {
    "type": "string"
  }
}, "resources": [
  {
    "type": "Microsoft.Web/Sites",
    "apiVersion": "2025-03-01",
    "name": "[parameters('siteName')]",
    ...
  }
]

Example

W poniższym przykładzie pokazano uproszczone użycie parameters funkcji:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringParameter": {
      "type": "string",
      "defaultValue": "option 1"
    },
    "intParameter": {
      "type": "int",
      "defaultValue": 1
    },
    "objectParameter": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b"
      }
    },
    "arrayParameter": {
      "type": "array",
      "defaultValue": [ 1, 2, 3 ]
    },
    "crossParameter": {
      "type": "string",
      "defaultValue": "[parameters('stringParameter')]"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[parameters('stringParameter')]"
    },
    "intOutput": {
      "type": "int",
      "value": "[parameters('intParameter')]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[parameters('objectParameter')]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[parameters('arrayParameter')]"
    },
    "crossOutput": {
      "type": "string",
      "value": "[parameters('crossParameter')]"
    }
  }
}

Dane wyjściowe wartości domyślnych z poprzedniego przykładu to:

Name Typ Value
stringOutput String opcja 1
intOutput Int 1
objectOutput Object {"one": "a", "two": "b"}
arrayOutput Array [1, 2, 3]
crossOutput String opcja 1

Aby uzyskać więcej informacji na temat używania parametrów, zobacz parametry w szablonach usługi ARM.

variables

variables(variableName)

Zwraca wartość zmiennej. Określona nazwa zmiennej musi być zdefiniowana w sekcji zmiennych szablonu.

W Bicep bezpośrednio odwołują się do zmiennych przy użyciu ich nazw symbolicznych.

Parameters

Parameter Required Typ Description
variableName Yes String Nazwa zmiennej do zwrócenia.

Wartość zwracana

Wartość określonej zmiennej.

Remarks

Zazwyczaj używasz zmiennych, aby uprościć szablon, tworząc złożone wartości tylko raz. Poniższy przykład tworzy unikatową nazwę konta magazynu:

"variables": {
  "storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  },
  {
    "type": "Microsoft.Compute/virtualMachines",
    "dependsOn": [
      "[variables('storageName')]"
    ],
    ...
  }
],

Example

Poniższy przykład zwraca różne wartości zmiennych:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {
    "var1": "myVariable",
    "var2": [ 1, 2, 3, 4 ],
    "var3": "[ variables('var1') ]",
    "var4": {
      "property1": "value1",
      "property2": "value2"
    }
  },
  "resources": [],
  "outputs": {
    "exampleOutput1": {
      "type": "string",
      "value": "[variables('var1')]"
    },
    "exampleOutput2": {
      "type": "array",
      "value": "[variables('var2')]"
    },
    "exampleOutput3": {
      "type": "string",
      "value": "[variables('var3')]"
    },
    "exampleOutput4": {
      "type": "object",
      "value": "[variables('var4')]"
    }
  }
}

Dane wyjściowe wartości domyślnych z poprzedniego przykładu to:

Name Typ Value
exampleOutput1 String myVariable
exampleOutput2 Array [1, 2, 3, 4]
exampleOutput3 String myVariable
exampleOutput4 Object {"property1": "value1", "property2": "value2"}

Aby uzyskać więcej informacji na temat używania zmiennych, zobacz zmienne w szablonie usługi ARM.

Dalsze kroki

Aby dowiedzieć się więcej na temat sekcji w szablonie usługi ARM, zobacz strukturę i składnię szablonów usługi ARM.