Freigeben über


Verwenden von Bereitstellungsskripts in Bicep

Mithilfe der Ressource deploymentScripts können Sie Skripts in Bicep-Bereitstellungen ausführen und die Ausführungsergebnisse überprüfen. Sie können diese Skripts verwenden, um benutzerdefinierte Schritte auszuführen, z. B.:

  • Hinzufügen von Benutzern zu einem Verzeichnis
  • Ausführen von Vorgängen auf Datenebene, z. B. Kopieren von Blobs oder Ausführen von Datenbankseeding
  • Suchen und Überprüfen eines Lizenzschlüssels
  • Erstellen Sie ein selbstsigniertes Zertifikat.
  • Erstellen Sie ein Objekt in Microsoft Entra ID.
  • Suchen von IP-Adressblöcken auf einem benutzerdefinierten System

Bereitstellungsskripts haben u. a. folgende Vorteile:

  • Sie sind einfach zu codieren, zu verwenden und zu debuggen. Sie können Bereitstellungsskripts in Ihren bevorzugten Entwicklungsumgebungen entwickeln. Die Skripts können in Bicep-Dateien oder externe Skriptdateien eingebettet werden.
  • Sie können die Skriptsprache und die Plattform angeben. Derzeit werden Azure PowerShell- und Azure CLI-Bereitstellungsskripts in der Linux-Umgebung unterstützt.
  • Sie können Befehlszeilenargumente an das Skript übergeben.
  • Sie können Skriptausgaben angeben und an die Bereitstellung zurückgeben.

Die Bereitstellungsskriptressource ist nur in den Regionen verfügbar, in denen Azure Container Instances verfügbar ist. Weitere Informationen finden Sie unter Ressourcenverfügbarkeit für Azure Container Instances in Azure-Regionen.

Warnung

Der Bereitstellungsskriptdienst erfordert zwei zusätzliche Ressourcen für die Ausführung und Problembehandlung von Skripts: ein Speicherkonto und eine Containerinstanz. Im Allgemeinen bereinigt der Dienst diese Ressourcen nach Abschluss des Bereitstellungsskripts. Es entstehen jedoch Gebühren für diese Ressourcen, bis sie entfernt werden.

Preisinformationen finden Sie unter Container Instances – Preise und Azure Storage – Preise. Weitere Informationen finden Sie unter Bereinigen von Bereitstellungsskriptressourcen.

Schulungsangebote

Wenn Sie die Bereitstellungsskripts lieber anhand einer Schritt-für-Schritt-Anleitung kennenlernen möchten, lesen Sie Erweitern von Bicep- und ARM-Vorlagen mithilfe von Bereitstellungsskripts.

Konfigurieren der mindestens erforderlichen Berechtigungen

Bei Version 2020-10-01 oder höher der Bereitstellungsskript-API sind zwei Prinzipale an der Ausführung des Bereitstellungsskripts beteiligt:

  • Bereitstellungsprinzipal: Dieser Prinzipal wird zum Bereitstellen der Bicep-Datei verwendet. Er erstellt zugrunde liegende Ressourcen, die für die Ausführung der Bereitstellungsskriptressource erforderlich sind: ein Speicherkonto und eine Azure-Containerinstanz. Weisen Sie dem Bereitstellungsprinzipal eine benutzerdefinierte Rolle mit den folgenden Eigenschaften zu, um die Berechtigungen mit den geringsten Rechten zu konfigurieren:

    {
      "roleName": "deployment-script-minimum-privilege-for-deployment-principal",
      "description": "Configure least privilege for the deployment principal in deployment script",
      "type": "customRole",
      "IsCustom": true,
      "permissions": [
        {
          "actions": [
            "Microsoft.Storage/storageAccounts/*",
            "Microsoft.ContainerInstance/containerGroups/*",
            "Microsoft.Resources/deployments/*",
            "Microsoft.Resources/deploymentScripts/*"
          ],
        }
      ],
      "assignableScopes": [
        "[subscription().id]"
      ]
    }
    

    Falls die Azure Storage- und die Azure Container Instances-Ressourcenanbieter nicht registriert wurden, müssen Sie Microsoft.Storage/register/action und Microsoft.ContainerInstance/register/action hinzufügen.

  • Bereitstellungsskriptprinzipal: Dieser Prinzipal ist nur erforderlich, wenn sich das Bereitstellungsskript bei Azure authentifizieren und die Azure CLI oder PowerShell aufrufen muss. Es gibt zwei Möglichkeiten, den Bereitstellungsskriptprinzipal anzugeben:

    • Geben Sie eine benutzerseitig zugewiesene verwaltete Identität in der identity-Eigenschaft an. (Sehen Sie sich die Syntax der Bereitstellungsskriptressource an.) Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität angeben, ruft der Skriptdienst Connect-AzAccount -Identity auf, bevor das Bereitstellungsskript aufgerufen wird. Die verwaltete Identität muss über den erforderlichen Zugriff verfügen, um den Vorgang im Skript abzuschließen. Zurzeit wird nur eine benutzerseitig zugewiesene verwaltete Identität für die identity-Eigenschaft unterstützt. Verwenden Sie die zweite Methode in dieser Liste, um sich mit einer anderen Identität anzumelden.
    • Übergeben Sie die Anmeldeinformationen für den Dienstprinzipal als sichere Umgebungsvariablen, und rufen Sie dann Connect-AzAccount oder az login im Bereitstellungsskript auf.

    Wenn Sie eine verwaltete Identität verwenden, muss für den Bereitstellungsprinzipal die integrierte Rolle „Operator für verwaltete Identität“ der Ressource der verwalteten Identität zugewiesen sein.

Derzeit gibt es keine integrierte Rolle, die auf die Konfiguration von Bereitstellungsskriptberechtigungen zugeschnitten ist.

Erstellen von Bereitstellungsskripts

Das folgende Beispiel veranschaulicht eine einfache Bicep-Datei mit einer Bereitstellungsskriptressource. Das Skript verwendet einen Zeichenfolgenparameter und erstellt eine weitere Zeichenfolge.

param name string = 'John Dole'
param location string = resourceGroup().location

resource deploymentScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
  name: 'inlineCLI'
  location: location
  kind: 'AzureCLI'
  properties: {
    azCliVersion: '2.52.0'
    arguments: name
    scriptContent: 'echo "The argument is ${name}."; jq -n -c --arg st "Hello ${name}" \'{"text": $st}\' > $AZ_SCRIPTS_OUTPUT_PATH'
    retentionInterval: 'PT1H'
  }
}

output text string = deploymentScript.properties.outputs.text

Weitere Informationen zum Erstellen von Bereitstellungsskriptressourcen finden Sie unter Erstellen von Bereitstellungsskripts. Für die Erstellung von Skripts für die Bereitstellungsskriptressource empfiehlt es sich, eine dedizierte Skriptentwicklungsumgebung wie eine Azure-Containerinstanz oder ein Docker-Image einzurichten. Nachdem die Skripts entwickelt und gründlich getestet wurden, können Sie die Skriptdateien über die Bereitstellungsskriptressource integrieren oder aufrufen. Weitere Informationen finden Sie unter Konfigurieren von Skriptentwicklungsumgebungen.

Speichern Sie das Skript in einer Datei vom Typ inlineScript.bicep, und stellen Sie dann die Ressource mithilfe des folgenden Skripts bereit:

$resourceGroupName = Read-Host -Prompt "Enter the name of the resource group to be created"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"

New-AzResourceGroup -Name $resourceGroupName -Location $location

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile "inlineScript.bicep"

Write-Host "Press [ENTER] to continue ..."

Verwenden der verwalteten Identität

Im folgenden Beispiel wird veranschaulicht, wie eine verwaltete Identität für die Interaktion mit Azure innerhalb des Bereitstellungsskripts verwendet wird.

@description('The location of the resources.')
param location string = resourceGroup().location

@description('The storage account to list blobs from.')
param storageAccountData {
  name: string
  container: string
}

@description('The role id of Storage Blob Data Reader.')
var storageBlobDataReaderRoleId = '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1'

@description('The storage account to read blobs from.')
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' existing = {
  name: storageAccountData.name
}

@description('The Storage Blob Data Reader Role definition from [Built In Roles](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles).')
resource storageBlobDataReaderRoleDef 'Microsoft.Authorization/roleDefinitions@2022-05-01-preview' existing = {
  scope: subscription()
  name: storageBlobDataReaderRoleId
}

@description('The user identity for the deployment script.')
resource scriptIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-07-31-preview' = {
  name: 'script-identity'
  location: location
}

@description('Assign permission for the deployment scripts user identity access to the read blobs from the storage account.')
resource dataReaderRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  scope: storageAccount
  name: guid(storageBlobDataReaderRoleDef.id, scriptIdentity.id, storageAccount.id)
  properties: {
    principalType: 'ServicePrincipal'
    principalId: scriptIdentity.properties.principalId
    roleDefinitionId: storageBlobDataReaderRoleDef.id
  }
}

@description('The deployment script.')
resource script 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
  name: 'script'
  location: location
  kind: 'AzureCLI'
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${scriptIdentity.id}': {}
    }
  }
  properties: {
    azCliVersion: '2.59.0'
    retentionInterval: 'PT1H'
    arguments: '${storageAccount.properties.primaryEndpoints.blob} ${storageAccountData.container}'
    scriptContent: '''
      #!/bin/bash
      set -e
      az storage blob list --auth-mode login --blob-endpoint $1 --container-name $2
    '''
  }
}

Überwachen eines Bereitstellungsskripts und Behandeln von Problemen

Wenn Sie eine Bereitstellungsskriptressource bereitstellen, benötigen Sie ein Speicherkonto zum Speichern des Benutzerskripts, der Ausführungsergebnisse und der stdout-Datei. Sie können Ihr eigenes Speicherkonto angeben. Weitere Informationen finden Sie unter Verwenden eines vorhandenen Speicherkontos.

Eine Alternative zum Angeben Ihres eigenen Speicherkontos ist das Festlegen von cleanupPreference auf OnExpiration. Anschließend konfigurieren Sie retentionInterval für eine Dauer, die ausreichend Zeit zum Überprüfen der Ausgaben ermöglicht, bevor das Speicherkonto entfernt wird. Weitere Informationen finden Sie unter Bereinigen von Bereitstellungsskriptressourcen.

Fügen Sie der vorherigen Bicep-Datei die Eigenschaft cleanupPreference hinzu, und legen Sie den Wert auf OnExpiration fest. Der Standardwert ist Always. Legen Sie außerdem rentalInterval auf PT1H (eine Stunde) oder ein kürzeres Intervall fest.

param name string = 'John Dole'
param location string = resourceGroup().location

resource deploymentScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
  name: 'inlineCLI'
  location: location
  kind: 'AzureCLI'
  properties: {
    azCliVersion: '2.52.0'
    arguments: name
    scriptContent: 'echo "The argument is ${name}."; jq -n -c --arg st "Hello ${name}" \'{"text": $st}\' > $AZ_SCRIPTS_OUTPUT_PATH'
    cleanupPreference: 'OnExpiration'
    retentionInterval: 'PT1H'
  }
}

output text string = deploymentScript.properties.outputs.text

Nach der erfolgreichen Bereitstellung der Bicep-Datei verwenden Sie das Azure-Portal, die Azure CLI, Azure PowerShell oder die REST-API, um die Ergebnisse zu überprüfen.

Azure-Portal

Nachdem Sie eine Bereitstellungsskriptressource bereitgestellt haben, wird sie im Azure-Portal unter der Ressourcengruppe aufgeführt. Auf der Seite Übersicht werden die beiden unterstützenden Ressourcen zusätzlich zur Bereitstellungsskriptressource aufgeführt. Die unterstützenden Ressourcen werden nach Ablauf des Aufbewahrungsintervalls gelöscht.

Beachten Sie, dass die Namen der beiden unterstützenden Ressourcen das Suffix azscripts haben, da diese Ressourcen automatisch erstellt werden. Die andere Möglichkeit, die unterstützenden Ressourcen zu identifizieren, ist die Verwendung von Tags.

Screenshot: Ressourcengruppe für Bereitstellungsskript

Wählen Sie die Bereitstellungsskriptressource aus der Liste aus. Auf der Seite Übersicht einer Bereitstellungsskriptressource werden einige wichtige Informationen zur Ressource wie Bereitstellungsstatus und die beiden unterstützenden Ressourcen (Speicherkonto und Containerinstanz) angezeigt. Im Bereich Protokolle wird der Drucktext aus dem Skript angezeigt.

Screenshot: Informationen zu einer Bereitstellungsskript-Ressource

Wählen Sie Ausgaben aus, um die Ausgaben des Skripts anzuzeigen.

Screenshot: Ausgabe des Bereitstellungsskripts

Wechseln Sie zurück zur Ressourcengruppe, und wählen Sie das Speicherkonto und dann Dateifreigabenaus. Wählen Sie die Dateifreigabe aus, bei der azscripts an den Namen der Freigabe angehängt ist. Zwei Ordner werden in der Liste angezeigt: azscriptinput und azscriptoutput. Der Ausgabeordner enthält die Datei executionresult.json und die Skriptausgabedatei. Die Datei executionresult.json enthält die Fehlermeldung der Skriptausführung. Die Ausgabedatei wird nur erstellt, wenn das Skript erfolgreich ausgeführt wurde.

Screenshot: Inhalts des Ausgabeordners eines Bereitstellungsskripts

Der Eingabeordner enthält die Systemskriptdatei und die Bereitstellungsskriptdateien der Benutzer*innen. Sie können die Skriptdatei für die Benutzerbereitstellung durch eine überarbeitete Version ersetzen und das Bereitstellungsskript erneut aus der Azure-Containerinstanz ausführen.

Azure CLI

Mithilfe der Azure-Befehlszeilenschnittstelle können Sie Bereitstellungsskripts im Abonnement- oder Ressourcengruppenbereich verwalten:

Die Ausgabe des list-Befehls ähnelt dem folgenden Beispiel:

{
  "arguments": "John Dole",
  "azCliVersion": "2.52.0",
  "cleanupPreference": "OnExpiration",
  "containerSettings": {
    "containerGroupName": null
  },
  "environmentVariables": null,
  "forceUpdateTag": null,
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Resources/deploymentScripts/inlineCLI",
  "identity": null,
  "kind": "AzureCLI",
  "location": "centralus",
  "name": "inlineCLI",
  "outputs": {
    "text": "Hello John Dole"
  },
  "primaryScriptUri": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "dsDemo",
  "retentionInterval": "1:00:00",
  "scriptContent": "echo \"The argument is John Dole.\"; jq -n -c --arg st \"Hello John Dole\" '{\"text\": $st}' > $AZ_SCRIPTS_OUTPUT_PATH",
  "status": {
    "containerInstanceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.ContainerInstance/containerGroups/jgczqtxom5oreazscripts",
    "endTime": "2023-12-11T20:20:12.149468+00:00",
    "error": null,
    "expirationTime": "2023-12-11T21:20:12.149468+00:00",
    "startTime": "2023-12-11T20:18:26.674492+00:00",
    "storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Storage/storageAccounts/jgczqtxom5oreazscripts"
  },
  "storageAccountSettings": null,
  "supportingScriptUris": null,
  "systemData": {
    "createdAt": "2023-12-11T19:45:32.239063+00:00",
    "createdBy": "johndole@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-12-11T20:18:26.183565+00:00",
    "lastModifiedBy": "johndole@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "timeout": "1 day, 0:00:00",
  "type": "Microsoft.Resources/deploymentScripts"
}

Azure PowerShell

Mithilfe von Azure PowerShell können Sie Bereitstellungsskripts im Abonnement- oder Ressourcengruppenbereich verwalten:

Die Get-AzDeploymentScript-Ausgabe ähnelt diesem Beispiel:

Name                : inlinePS
Id                  : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Resources/deploymentScripts/inlinePS
ResourceGroupName   : dsDemo
Location            : centralus
SubscriptionId      : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
ProvisioningState   : Succeeded
Identity            :
ScriptKind          : AzurePowerShell
AzPowerShellVersion : 10.0
StartTime           : 12/11/2023 9:45:50 PM
EndTime             : 12/11/2023 9:46:59 PM
ExpirationDate      : 12/11/2023 10:46:59 PM
CleanupPreference   : OnExpiration
StorageAccountId    : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Storage/storageAccounts/ee5o4rmoo6ilmazscripts
ContainerInstanceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.ContainerInstance/containerGroups/ee5o4rmoo6ilmazscripts
Outputs             :
                      Key                 Value
                      ==================  ==================
                      text                Hello John Dole.

RetentionInterval   : PT1H
Timeout             : P1D

REST-API

Mithilfe der REST-API können Sie Informationen zur Bereitstellungsskriptressource auf Ressourcengruppenebene und Abonnementebene abrufen:

/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/microsoft.resources/deploymentScripts/<DeploymentScriptResourceName>?api-version=2020-10-01
/subscriptions/<SubscriptionID>/providers/microsoft.resources/deploymentScripts?api-version=2020-10-01

Im folgenden Beispiel wird ARMClient verwendet. ARMClient ist kein unterstütztes Microsoft-Tool.

armclient login
armclient get /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myrg/providers/microsoft.resources/deploymentScripts/myDeployementScript?api-version=2020-10-01

Die Ausgabe ähnelt diesem Beispiel:

{
  "kind": "AzureCLI",
  "identity": null,
  "location": "centralus",
  "systemData": {
    "createdAt": "2023-12-11T19:45:32.239063+00:00",
    "createdBy": "johndole@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-12-11T20:18:26.183565+00:00",
    "lastModifiedBy": "johndole@contoso.com",
    "lastModifiedByType": "User"
  },
  "properties": {
    "provisioningState": "Succeeded",
    "azCliVersion": "2.52.0",
    "scriptContent": "echo \"The argument is John Dole.\"; jq -n -c --arg st \"Hello John Dole\" '{\"text\": $st}' > $AZ_SCRIPTS_OUTPUT_PATH",
    "arguments": "John Dole",
    "retentionInterval": "1:00:00",
    "timeout": "1 day, 0:00:00",
    "containerSettings": {
      "containerGroupName": null
    },
    "status": {
      "containerInstanceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.ContainerInstance/containerGroups/jgczqtxom5oreazscripts",
      "endTime": "2023-12-11T20:20:12.149468+00:00",
      "error": null,
      "expirationTime": "2023-12-11T21:20:12.149468+00:00",
      "startTime": "2023-12-11T20:18:26.674492+00:00",
      "storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Storage/storageAccounts/jgczqtxom5oreazscripts"
    },
    "outputs": {
      "text": "Hello John Dole"
    },
    "cleanupPreference": "OnSuccess"
  },
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Resources/deploymentScripts/inlineCLI",
  "type": "Microsoft.Resources/deploymentScripts",
  "name": "inlineCLI",
}

Die folgende REST-API gibt das Protokoll zurück:

/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/microsoft.resources/deploymentScripts/<DeploymentScriptResourceName>/logs?api-version=2020-10-01

Dies funktioniert nur, bevor die Bereitstellungsskriptressourcen gelöscht werden.


Fehlercodes von Bereitstellungsskripts

Die folgende Tabelle enthält die Fehlercodes für das Bereitstellungsskript:

Fehlercode Beschreibung
DeploymentScriptInvalidOperation Die Ressourcendefinition im Bereitstellungsskript in der Bicep-Datei enthält ungültige Eigenschaftsnamen.
DeploymentScriptResourceConflict Sie können eine Bereitstellungsskriptressource nicht löschen, wenn sie sich in einem nicht terminalen Zustand befindet und die Ausführung eine Stunde noch nicht überschritten hat. Oder Sie können nicht dasselbe Bereitstellungsskript mit demselben Ressourcenbezeichner (selbes Abonnement, selber Ressourcengruppenname und selber Ressourcenname), aber unterschiedlichem Skripttextinhalt gleichzeitig erneut ausführen.
DeploymentScriptOperationFailed Interner Fehler beim Bereitstellungsskriptvorgang. Wenden Sie sich an den Microsoft-Support.
DeploymentScriptStorageAccountAccessKeyNotSpecified Der Zugriffsschlüssel wurde nicht für das vorhandene Speicherkonto angegeben.
DeploymentScriptContainerGroupContainsInvalidContainers Eine vom Bereitstellungsskriptdienst erstellte Containergruppe wurde extern geändert, und es wurden ungültige Container hinzugefügt.
DeploymentScriptContainerGroupInNonterminalState Mindestens zwei Bereitstellungsskriptressourcen verwenden denselben Azure-Containerinstanznamen in derselben Ressourcengruppe, und einer von ihnen hat die Ausführung noch nicht abgeschlossen.
DeploymentScriptExistingStorageNotInSameSubscriptionAsDeploymentScript Der vorhandene Speicher, der bei der Bereitstellung bereitgestellt wird, befindet sich nicht in dem Abonnement, in dem das Skript bereitgestellt wird.
DeploymentScriptStorageAccountInvalidKind Das vorhandene Speicherkonto des Typs BlobBlobStorage oder BlobStorage unterstützt keine Dateifreigaben und kann nicht verwendet werden.
DeploymentScriptStorageAccountInvalidKindAndSku Das vorhandene Speicherkonto unterstützt keine Dateifreigaben. Eine Liste der unterstützten Speicherkontotypen finden Sie unter Verwenden eines vorhandenen Speicherkontos.
DeploymentScriptStorageAccountNotFound Das Speicherkonto ist nicht vorhanden oder wurde von einem externen Prozess oder Tool gelöscht.
DeploymentScriptStorageAccountWithServiceEndpointEnabled Das angegebene Speicherkonto besitzt einen Dienstendpunkt. Ein Speicherkonto mit einem Dienstendpunkt wird nicht unterstützt.
DeploymentScriptStorageAccountInvalidAccessKey Für das vorhandene Speicherkonto wurde ein ungültiger Zugriffsschlüssel angegeben.
DeploymentScriptStorageAccountInvalidAccessKeyFormat Der Speicherkontoschlüssel weist ein ungültiges Format auf. Weitere Informationen finden Sie unter Verwalten von Speicherkonto-Zugriffsschlüsseln.
DeploymentScriptExceededMaxAllowedTime Die Dauer der Ausführung des Bereitstellungsskripts hat den in der Ressourcendefinition des Bereitstellungsskripts angegebenen Timeoutwert überschritten.
DeploymentScriptInvalidOutputs Die Bereitstellungsskriptausgabe ist kein gültiges JSON-Objekt.
DeploymentScriptContainerInstancesServiceLoginFailure Die benutzerseitig zugewiesene verwaltete Identität konnte sich nach 10 Versuchen in einem Intervall von jeweils einer Minute nicht anmelden.
DeploymentScriptContainerGroupNotFound Eine vom Bereitstellungsskriptdienst erstellte Containergruppe wurde von einem externen Tool oder Prozess gelöscht.
DeploymentScriptDownloadFailure Fehler beim Herunterladen eines unterstützenden Skripts. Siehe Verwenden unterstützender Skripts.
DeploymentScriptError Das Benutzerskript hat einen Fehler ausgelöst.
DeploymentScriptBootstrapScriptExecutionFailed Das Bootstrapskript hat einen Fehler ausgelöst. Das Bootstrapskript ist das Systemskript, das die Ausführung des Bereitstellungsskripts orchestriert.
DeploymentScriptExecutionFailed Während der Ausführung des Bereitstellungsskripts ist ein unbekannter Fehler aufgetreten.
DeploymentScriptContainerInstancesServiceUnavailable Beim Erstellen einer Containerinstanz hat der Azure Container Instances-Dienst einen Fehler vom Typ „Dienst nicht verfügbar“ ausgelöst.
DeploymentScriptContainerGroupInNonterminalState Beim Erstellen einer Containerinstanz hat ein anderes Bereitstellungsskript denselben Containerinstanznamen im selben Bereich (selbes Abonnement, selber Ressourcengruppenname und selber Ressourcenname) verwendet.
DeploymentScriptContainerGroupNameInvalid Der angegebene Containerinstanzname entspricht nicht den Azure Container Instances-Anforderungen. Siehe Behandeln von häufigen Problemen in Azure Container Instances.

Zugreifen auf ein privates virtuelles Netzwerk

Sie können Bereitstellungsskripts in privaten Netzwerken mit einigen zusätzlichen Konfigurationen ausführen. Weitere Informationen finden Sie unter Zugreifen auf ein privates virtuelles Netzwerk mithilfe des Dienstendpunkts oder Ausführen eines Bicep-Bereitstellungsskripts privat über einen privaten Endpunkt.

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie Bereitstellungsskripts verwenden. Weitere Informationen finden Sie unter: