Bicep'te dağıtım betiklerini kullanma

deploymentScripts kaynağını kullanarak Bicep dağıtımlarında betik çalıştırabilir ve yürütme sonuçlarını gözden geçirebilirsiniz. Aşağıdaki gibi özel adımları gerçekleştirmek için bu betikleri kullanabilirsiniz:

  • Dizine kullanıcı ekleme.
  • Veri düzlemi işlemleri gerçekleştirme; örneğin, blobları veya bir veritabanının tohumlarını kopyalayın.
  • Lisans anahtarını arayın ve doğrulayın.
  • Kendinden imzalı bir sertifika oluşturun.
  • Microsoft Entra Id'de bir nesne oluşturun.
  • Özel bir sistemden IP adresi bloklarını arayın.

Dağıtım betiklerinin avantajları şunlardır:

  • Bunlar kolayca kodlanıp, kullanılabilir ve hata ayıklar. Sık kullandığınız geliştirme ortamlarında dağıtım betikleri geliştirebilirsiniz. Betikler Bicep dosyalarına veya dış betik dosyalarına eklenebilir.
  • Betik dilini ve platformu belirtebilirsiniz. Şu anda Linux ortamındaki Azure PowerShell ve Azure CLI dağıtım betikleri desteklenmektedir.
  • Komut satırı bağımsız değişkenlerinin betike geçirilmesine izin vekleyebilirsiniz.
  • Betik çıkışlarını belirtebilir ve bunları dağıtıma geri geçirebilirsiniz.

Dağıtım betiği kaynağı yalnızca Azure Container Instances'ın kullanılabildiği bölgelerde kullanılabilir. Daha fazla bilgi için bkz . Azure bölgelerindeki Azure Container Instances için kaynak kullanılabilirliği.

Uyarı

Dağıtım betiği hizmeti, betikleri çalıştırmak ve sorunlarını gidermek için iki ek kaynak gerektirir: depolama hesabı ve kapsayıcı örneği. Genellikle, dağıtım betiği tamamlandıktan sonra hizmet bu kaynakları temizler. Kaldırılana kadar bu kaynaklar için ücretlendirilirsiniz.

Fiyatlandırma bilgileri için bkz . Kapsayıcı Örnekleri fiyatlandırması ve Azure Depolama fiyatlandırması. Daha fazla bilgi edinmek için bkz . Dağıtım betiği kaynaklarını temizleme.

Eğitim kaynakları

Adım adım yönergeler aracılığıyla dağıtım betikleri hakkında bilgi edinmek isterseniz bkz . Dağıtım betiklerini kullanarak Bicep ve ARM şablonlarını genişletme.

En düşük izinleri yapılandırma

Dağıtım betiği API'si sürümü veya sonraki sürümleri 2020-10-01 için dağıtım betiği yürütme işlemine iki sorumlu dahil edilir:

  • Dağıtım sorumlusu: Bu sorumlu, Bicep dosyasını dağıtmak için kullanılır. Dağıtım betiği kaynağının çalışması için gerekli olan temel kaynakları (depolama hesabı ve Azure kapsayıcı örneği) oluşturur. En düşük ayrıcalık izinlerini yapılandırmak için dağıtım sorumlusuna aşağıdaki özelliklere sahip özel bir rol atayın:

    {
      "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]"
      ]
    }
    

    Azure Depolama ve Azure Container Instances kaynak sağlayıcıları kaydedilmediyse ve Microsoft.ContainerInstance/register/actioneklemeyi Microsoft.Storage/register/action unutmayın.

  • Dağıtım betiği sorumlusu: Bu sorumlu yalnızca dağıtım betiğinin Azure'da kimlik doğrulaması yapması ve Azure CLI veya PowerShell'i çağırması gerekiyorsa gereklidir. Dağıtım betiği sorumlusunu belirtmenin iki yolu vardır:

    • özelliğinde identity kullanıcı tarafından atanan bir yönetilen kimlik belirtin. (Bkz. dağıtım betiği kaynağı söz dizimi.) Kullanıcı tarafından atanan bir yönetilen kimlik belirttiğinizde, betik hizmeti dağıtım betiğini çağırmadan önce çağırır Connect-AzAccount -Identity . Yönetilen kimliğin betikteki işlemi tamamlamak için gerekli erişime sahip olması gerekir. Şu anda özellik için identity yalnızca kullanıcı tarafından atanan yönetilen kimlik desteklenmektedir. Farklı bir kimlikle oturum açmak için bu listedeki ikinci yöntemi kullanın.
    • Hizmet sorumlusu kimlik bilgilerini güvenli ortam değişkenleri olarak geçirin ve ardından dağıtım betiğinde Connect-AzAccount veya az login komutunu çağırın.

    Yönetilen kimlik kullanıyorsanız, dağıtım sorumlusunun yönetilen kimlik kaynağına atanmış yerleşik Yönetilen Kimlik operatörü rolüne sahip olması gerekir.

Şu anda, dağıtım betiği izinlerini yapılandırmak için uyarlanmış yerleşik rol yoktur.

Dağıtım betikleri oluşturma

Aşağıdaki örnekte dağıtım betiği kaynağına sahip basit bir Bicep dosyası gösterilmektedir. Betik bir dize parametresi alır ve başka bir dize oluşturur.

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

Dağıtım betiği kaynakları oluşturma hakkında daha fazla bilgi için bkz . Dağıtım betikleri oluşturma. Dağıtım betiği kaynağı için betikler oluşturmak için Azure kapsayıcı örneği veya Docker görüntüsü gibi ayrılmış bir betik geliştirme ortamı oluşturmanızı öneririz. Betikleri geliştirip kapsamlı bir şekilde test ettikten sonra, dağıtım betiği kaynağından betik dosyalarını tümleştirebilir veya çağırabilirsiniz. Daha fazla bilgi için bkz . Betik geliştirme ortamlarını yapılandırma.

Betiği bir inlineScript.bicep dosyasına kaydedin ve aşağıdaki betiği kullanarak kaynağı dağıtın:

$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 ..."

Yönetilen kimlik kullanma

Aşağıdaki örnekte, dağıtım betiğinin içinden Azure ile etkileşimde bulunma amacıyla yönetilen kimliğin nasıl kullanılacağı gösterilmektedir.

@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://video2.skills-academy.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
    '''
  }
}

Dağıtım betiğini izleme ve sorunlarını giderme

Bir dağıtım betiği kaynağı dağıttığınızda, kullanıcı betiğini, yürütme sonuçlarını ve stdout dosyayı depolamak için bir depolama hesabına ihtiyacınız vardır. Kendi depolama hesabınızı belirtebilirsiniz. Daha fazla bilgi için bkz . Mevcut depolama hesabını kullanma.

Kendi depolama hesabınızı belirtmeye alternatif olarak ayarının cleanupPreference ayarlanması OnExpirationgerekir. Ardından, depolama hesabı kaldırılmadan önce çıkışları gözden geçirmek için gereken süreye izin veren bir süre yapılandırırsınız retentionInterval . Daha fazla bilgi için bkz . Dağıtım betiği kaynaklarını temizleme.

cleanupPreference özelliğini önceki Bicep dosyasına ekleyin ve değerini olarak OnExpirationayarlayın. Varsayılan değer şudur: Always. Ayrıca , (bir saat) veya daha kısa olarak ayarlayın rentalInterval PT1H .

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

Bicep dosyasını başarıyla dağıttığınızda sonuçları denetlemek için Azure portalını, Azure CLI'yı, Azure PowerShell'i veya REST API'yi kullanın.

Azure portal

Dağıtım betiği kaynağını dağıttığınızda, kaynak Azure portalındaki kaynak grubunun altında listelenir. Genel Bakış sayfasında, dağıtım betiği kaynağına ek olarak iki destekleyici kaynak listelenir. Bekletme aralığı sona erdikten sonra destekleyici kaynaklar silinir.

Her iki destekleyici kaynağın da adlarında azscripts soneki olduğuna dikkat edin çünkü bu kaynaklar otomatik olarak oluşturulur. Destekleyici kaynakları tanımlamanın diğer yolu etiketleri kullanmaktır.

Dağıtım betiği kaynak grubunun ekran görüntüsü.

Listeden dağıtım betiği kaynağını seçin. Dağıtım betiği kaynağının Genel Bakış sayfasında kaynakla ilgili Sağlama durumu ve iki destekleyici kaynak (Depolama hesabı ve Kapsayıcı örneği) gibi önemli bilgiler görüntülenir. Günlükler alanında betikten gelen yazdırma metni gösterilir.

Dağıtım betiği kaynağı hakkındaki bilgilerin ekran görüntüsü.

Betiğin çıkışlarını görüntülemek için Çıkışlar'ı seçin.

Dağıtım betiği çıkışlarının ekran görüntüsü.

Kaynak grubuna geri dönün, depolama hesabını seçin, Dosya paylaşımları'nı seçin ve ardından paylaşım adının sonuna azscripts eklenmiş dosya paylaşımını seçin. Listede iki klasör görünür: azscriptinput ve azscriptoutput. Çıkış klasörü bir executionresult.json dosyası ve betik çıkış dosyası içerir. executionresult.json dosyası betik yürütme hata iletisini içerir. Çıkış dosyası yalnızca betiği başarıyla çalıştırdığınızda oluşturulur.

Dağıtım betiğinin çıkış klasörünün içeriğinin ekran görüntüsü.

Giriş klasörü sistem betik dosyasını ve kullanıcı dağıtım betiği dosyasını içerir. Kullanıcı dağıtım betiği dosyasını düzeltilmiş bir betikle değiştirebilir ve Azure kapsayıcı örneğinden dağıtım betiğini yeniden çalıştırabilirsiniz.

Azure CLI

Abonelik veya kaynak grubu kapsamında dağıtım betiklerini yönetmek için Azure CLI'yi kullanabilirsiniz:

List komutunun çıktısı şu örneğe benzer:

{
  "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

Abonelik veya kaynak grubu kapsamında dağıtım betiklerini yönetmek için Azure PowerShell'i kullanabilirsiniz:

Çıkış Get-AzDeploymentScript şu örneğe benzer:

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

Kaynak grubu düzeyinde ve abonelik düzeyinde dağıtım betiği kaynağı hakkında bilgi almak için REST API'sini kullanabilirsiniz:

/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

Aşağıdaki örnekte ARMClient kullanılır. ARMClient desteklenen bir Microsoft aracı değildir.

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

Çıkış şu örneğe benzer:

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

Aşağıdaki REST API günlüğü döndürür:

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

Yalnızca dağıtım betiği kaynakları silinmeden önce çalışır.


Dağıtım betiği hata kodları

Aşağıdaki tabloda dağıtım betiği için hata kodları listelenmektedir:

Hata kodu Açıklama
DeploymentScriptInvalidOperation Bicep dosyasındaki dağıtım betiği kaynak tanımı geçersiz özellik adları içeriyor.
DeploymentScriptResourceConflict Dağıtım betiği kaynağı belirsiz bir durumdaysa ve yürütme bir saati aşmadıysa, bu kaynağı silemezsiniz. Veya aynı dağıtım betiğini aynı kaynak tanımlayıcısıyla (aynı abonelik, kaynak grubu adı ve kaynak adı) ancak aynı anda farklı betik gövdesi içeriğiyle yeniden çalıştıramazsınız.
DeploymentScriptOperationFailed Dağıtım betiği işlemi dahili olarak başarısız oldu. Microsoft desteğine başvurun.
DeploymentScriptStorageAccountAccessKeyNotSpecified Erişim anahtarı mevcut depolama hesabı için belirtilmedi.
DeploymentScriptContainerGroupContainsInvalidContainers Dağıtım betiği hizmetinin oluşturduğu bir kapsayıcı grubu dışarıdan değiştirildi ve geçersiz kapsayıcılar eklendi.
DeploymentScriptContainerGroupInNonterminalState İki veya daha fazla dağıtım betiği kaynağı aynı kaynak grubunda aynı Azure kapsayıcı örneği adını kullanır ve bunlardan biri henüz yürütmeyi tamamlamamıştır.
DeploymentScriptExistingStorageNotInSameSubscriptionAsDeploymentScript Dağıtımda sağlanan mevcut depolama, betiğin dağıtıldığı abonelikte bulunmaz.
DeploymentScriptStorageAccountInvalidKind veya BlobStorage türünün mevcut depolama hesabı BlobBlobStorage dosya paylaşımlarını desteklemez ve kullanılamaz.
DeploymentScriptStorageAccountInvalidKindAndSku Mevcut depolama hesabı dosya paylaşımlarını desteklemiyor. Desteklenen depolama hesabı türlerinin listesi için bkz . Mevcut depolama hesabını kullanma.
DeploymentScriptStorageAccountNotFound Depolama hesabı yok veya harici bir işlem veya araç sildi.
DeploymentScriptStorageAccountWithServiceEndpointEnabled Belirtilen depolama hesabının bir hizmet uç noktası var. Hizmet uç noktasına sahip depolama hesabı desteklenmez.
DeploymentScriptStorageAccountInvalidAccessKey Mevcut depolama hesabı için geçersiz bir erişim anahtarı belirtildi.
DeploymentScriptStorageAccountInvalidAccessKeyFormat Depolama hesabı anahtarının biçimi geçersiz. Bkz. Depolama hesabı erişim anahtarlarını yönetme.
DeploymentScriptExceededMaxAllowedTime Dağıtım betiği yürütme süresi, dağıtım betiği kaynak tanımında belirtilen zaman aşımı değerini aştı.
DeploymentScriptInvalidOutputs Dağıtım betiği çıkışı geçerli bir JSON nesnesi değil.
DeploymentScriptContainerInstancesServiceLoginFailure Kullanıcı tarafından atanan yönetilen kimlik, 10 denemeden sonra bir dakikalık aralıklarla oturum açamadı.
DeploymentScriptContainerGroupNotFound Dış bir araç veya işlem, dağıtım betiği hizmetinin oluşturduğu bir kapsayıcı grubunu sildi.
DeploymentScriptDownloadFailure Destekleyici betik indirilemedi. Bkz . Destekleyici betikleri kullanma.
DeploymentScriptError Kullanıcı betiği hata verdi.
DeploymentScriptBootstrapScriptExecutionFailed Bootstrap betiği hata verdi. Bootstrap betiği, dağıtım betiğinin yürütülmesini düzenleyen sistem betiğidir.
DeploymentScriptExecutionFailed Dağıtım betiğinin yürütülmesi sırasında bilinmeyen bir hata oluştu.
DeploymentScriptContainerInstancesServiceUnavailable Kapsayıcı örneği oluşturulurken Azure Container Instances hizmeti "hizmet kullanılamıyor" hatası verdi.
DeploymentScriptContainerGroupInNonterminalState Kapsayıcı örneği oluşturulurken, başka bir dağıtım betiği aynı kapsamda (aynı abonelik, kaynak grubu adı ve kaynak adı) aynı kapsayıcı örneği adını kullanıyordu.
DeploymentScriptContainerGroupNameInvalid Belirtilen kapsayıcı örneği adı Azure Container Instances gereksinimlerini karşılamıyor. Bkz. Azure Container Instances'ta sık karşılaşılan sorunları giderme.

Özel sanal ağa erişme

Dağıtım betiklerini bazı ek yapılandırmalarla özel ağlarda çalıştırabilirsiniz. Daha fazla bilgi için bkz . Hizmet uç noktasını kullanarak özel bir sanal ağa erişme veya Bicep dağıtım betiğini özel uç nokta üzerinden özel olarak çalıştırma.

Sonraki adımlar

Bu makalede dağıtım betiklerini kullanmayı öğrendiniz. Daha fazla bilgi edinmek için şu makalelere bakın: