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
undMicrosoft.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 SkriptdienstConnect-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 dieidentity
-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.
- Geben Sie eine benutzerseitig zugewiesene verwaltete Identität in der
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.
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.
Wählen Sie Ausgaben aus, um die Ausgaben des Skripts anzuzeigen.
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.
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:
- az deployment-scripts delete: Dient zum Löschen eines Bereitstellungsskripts.
- az deployment-scripts list: Dient zum Auflisten aller Bereitstellungsskripts.
- az deployment-scripts show: Dient zum Abrufen eines Bereitstellungsskripts.
- az deployment-scripts show-log: Dient zum Anzeigen von Bereitstellungsskriptprotokollen.
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:
- Get-AzDeploymentScript: Hiermit werden Bereitstellungsskripts abgerufen oder aufgelistet.
- Get-AzDeploymentScriptLog: Hiermit wird das Protokoll der Ausführung eines Bereitstellungsskripts abgerufen.
- Remove-AzDeploymentScript: Hiermit werden ein Bereitstellungsskript und die zugehörigen Ressourcen entfernt.
- Save-AzDeploymentScriptLog: Hiermit wird das Protokoll der Ausführung eines Bereitstellungsskripts auf einem Datenträger gespeichert.
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:
- Trainingsmodul: Erweitern von ARM-Vorlagen mithilfe von Bereitstellungsskripts
- Entwickeln von Bereitstellungsskriptressourcen
- Zugreifen auf ein privates virtuelles Netzwerk mithilfe des Dienstendpunkts
- Ausführen eines Bicep-Bereitstellungsskripts privat über einen privaten Endpunkt
- Erstellen von Umgebungen für die Skriptentwicklung