Azure Resource Manager'la yaygın Azure dağıtım hatalarını giderme

Bu makalede bazı yaygın Azure dağıtım hataları açıklanmakta ve hatalar çözümlenme bilgileri sağlanmaktadır. Dağıtım hatanızın hata kodunu bulamazsanız bkz. Hata kodunu bulma.

Bir hata kodu hakkında bilgi arıyorsanız ve bu makalede bilgi sağlanmazsa bize bize izin verin. Bu sayfanın en altında geri bildirimde olabilirsiniz. geri bildirim GitHub sorunlarıyla izlenir.

Hata kodları

Hata kodu Risk azaltma Daha fazla bilgi
AccountNameInvalid Depolama hesapları için adlandırma kısıtlamalarını izleyin. Depolama hesabı adını çözümle
AccountPropertyCannotBeSet Kullanılabilir depolama hesabı özelliklerini denetleyin. storageAccounts
AllocationFailed Küme veya bölgenin kullanılabilir kaynakları yok veya istenen VM boyutunu destekleyemiyorum. İsteği daha sonra yeniden deneyin veya farklı bir VM boyutu isteyin. Windows ve ayırma sorunlarını gidermek için Linux, sağlama ve ayırma sorunları için sağlama ve ayırma sorunları
Anotheroperationınprogress Eşzamanlı işlemin tamamlanmasını bekleyin.
AuthorizationFailed Hesabınızın veya hizmet sorumlusunun dağıtımı tamamlaması için yeterli erişimi yok. Hesabınızın ait olduğu rolü ve dağıtım kapsamına erişimini denetleyin.

Gerekli bir kaynak sağlayıcısı kayıtlı olmadığında bu hatayı alabilirsiniz.
Azure rol tabanlı erişim denetimi (Azure RBAC)

Kaydı çözümle
Işlemindeki hatalı istek Kaynak Yöneticisi tarafından beklenildiği eşleşmeyen dağıtım değerleri gönderdiniz. Sorun gidermeye yardımcı olması için iç durum iletisini kontrol edin. Şablon başvurusu ve Desteklenen konumlar
Çakışma Kaynağın geçerli durumunda izin verilmeyen bir işlem isteğinde bulunuyoruz. Örneğin, yalnızca bir VM oluşturulurken veya VM serbest bırakıldığında disk yeniden boyutlandırılmasına izin verilir.
Deploymentactiveanddüzenlenemeyen Bu kaynak grubuna yönelik eşzamanlı dağıtımın tamamlanmasını bekleyin.
DeploymentFailedCleanUp ' I bir bütün modda dağıtırken, şablonda olmayan kaynaklar silinir. Şablonda olmayan tüm kaynakları silmek için yeterli izinlere sahip değilseniz bu hatayı alırsınız. Hatayı önlemek için Dağıtım modunu artımlı olarak değiştirin. Azure Resource Manager dağıtım modları
Deploymentnameınvalidcharacters Dağıtım adı yalnızca harf, rakam, '-', '. ' veya ' _ ' içerebilir.
Deploymentnamelengthlimitexceıbaşında Dağıtım adları 64 karakterle sınırlıdır.
DeploymentFailed DeploymentFailed hatası, hatayı çözmeniz için gereken ayrıntıları sağlamayan genel bir hatadır. Daha fazla bilgi sağlayan bir hata kodu için hata ayrıntılarına bakın. Hata kodunu bul
DeploymentQuotaExceeded Kaynak grubu başına 800 dağıtım sınırına ulaşırsanız, artık gerekli olmayan geçmişten dağıtımları silin. Dağıtım sayısı 800 ' i aştığında hatayı çözümle
Deploymentjobsizeaşıldı Boyutunu azaltmak için şablonunuzu kolaylaştırın. Şablon boyutu hatalarını çözümleme
DnsRecordInUse DNS kayıt adı benzersiz olmalıdır. Farklı bir ad girin.
Imagenotfound VM görüntüsü ayarlarını kontrol edin.
Inusesubnetcannotbedeleted Bir kaynağı güncelleştirmeye çalışırken bu hatayı alabilir ve kaynak silinerek ve oluşturularak istek işlenir. Tüm değiştirilmeyen değerleri belirttiğinizden emin olun. Güncelleştirme kaynağı
Invalidauthenticationtokentenant Uygun kiracı için erişim belirteci alın. Yalnızca hesabınızın ait olduğu kiracının belirtecini alabilir.
Invalidcontentlink Büyük olasılıkla kullanılamayan iç içe bir şablona bağlantı yapmaya çalıştınız. İç içe geçmiş şablon için verdiğiniz URI 'yi iki kez kontrol edin. Şablon bir depolama hesabında varsa, URI 'nin erişilebilir olduğundan emin olun. Bir SAS belirteci geçirmeniz gerekebilir. şu anda Azure Depolama güvenlik duvarınınarkasındaki bir depolama hesabında bulunan bir şablona bağlayamazsınız. Şablonunuzu GitHub gibi başka bir depoya taşımayı düşünün. Bağlı şablonlar
Invaliddeploymentlocation Abonelik düzeyinde dağıtım yaparken, daha önce kullanılan bir dağıtım adı için farklı bir konum sağladınız. Abonelik düzeyinde dağıtımlar
Geçersiz parametre Bir kaynak için verdiğiniz değerlerden biri beklenen değerle eşleşmiyor. Bu hata, birçok farklı koşulun oluşmasına neden olabilir. Örneğin, bir parola yetersiz olabilir veya bir blob adı yanlış olabilir. Hata iletisi hangi değerin düzeltilmesi gerektiğini göstermelidir.
Invalidrequestcontent Dağıtım değerleri, tanınmayan ya da gerekli değerler eksik olan değerleri içerir. Kaynak türü için değerleri onaylayın. Şablon başvurusu
Invalidrequestformat Dağıtımı çalıştırırken hata ayıklama günlüğünü etkinleştirin ve isteğin içeriğini doğrulayın. Hata ayıklama günlüğü
Invalidresourcenamespace Type özelliğinde belirttiğiniz kaynak ad alanını denetleyin. Şablon başvurusu
InvalidResourceReference Kaynak henüz yok ya da yanlış Başvurulmuş. Bağımlılık eklemeniz gerekip gerekmediğini denetleyin. Başvuru işlevi kullanmanın senaryonuz için gereken parametreleri içerdiğini doğrulayın. Bağımlılıkları çözümleme
InvalidResourceType type özelliğinde belirttiğiniz kaynak türünü kontrol edin. Şablon başvurusu
InvalidSubscriptionRegistrationState Aboneliğinizi kaynak sağlayıcısına kaydetme. Kaydı çözümleme
InvalidTemplate Şablon söz dizimi hata olup denetleyin. Geçersiz şablonu çözme
InvalidTemplateCircularDependency Gereksiz bağımlılıkları kaldırın. Döngüsel bağımlılıkları çözümleme
JobSizeExceeded Boyutu azaltmak için şablonlarınızı basitleştirin. Şablon boyutu hatalarını çözme
LinkedAuthorizationFailed Hesabınız, dağıtmakta olduğu kaynak grubuyla aynı kiracıya ait olup olmadığını kontrol edin.
LinkedInvalidPropertyId Kaynağın kaynak kimliği doğru çözümlenemediğini gösterir. Kaynak kimliği için abonelik kimliği, kaynak grubu adı, kaynak türü, üst kaynak adı (gerekirse) ve kaynak adı gibi tüm gerekli değerleri s sağlamayı öğrenin.
LocationRequired Kaynak için bir konum sağlar. Konum ayarlama
EşleşmeyenResourceSegments İç içe kaynağın ad ve tür olarak doğru sayıda segmente sahip olduğundan emin olun. Kaynak kesimlerini çözümleme
MissingRegistrationForLocation Kaynak sağlayıcısı kayıt durumunu ve desteklenen konumları kontrol edin. Kaydı çözümleme
MissingSubscriptionRegistration Aboneliğinizi kaynak sağlayıcısına kaydetme. Kaydı çözümleme
NoRegisteredProviderFound Kaynak sağlayıcısı kayıt durumunu denetleme. Kaydı çözümleme
NotFound Bağımlı bir kaynağı üst kaynakla paralel olarak dağıtmaya çalıştığınız olabilir. Bağımlılık eklemenizin gerek olup olduğunu kontrol edin. Bağımlılıkları çözümleme
OperationNotAllowed Dağıtım abonelik, kaynak grubu veya bölge kotasını aşan bir işlem yapmaya çalışırken. Mümkünse, kotaların içinde kalmak için dağıtımınızı düzeltin. Aksi takdirde, kotalar için değişiklik isteğite bulundurarak. Kotaları çözümleme
ParentResourceNotFound Alt kaynakları oluşturmadan önce bir üst kaynağın mevcut olduğundan emin olun. Üst kaynağı çözümleme
PasswordTooLong Çok fazla karakter içeren bir parolayı seçtiyseniz veya parametre olarak geçirmeden önce parola değerinizi güvenli bir dizeye dönüştürebilirsiniz. Şablonda güvenli bir dize parametresi varsa değeri güvenli bir dizeye dönüştürmeniz gerekli değildir. Parola değerini metin olarak girin.
PrivateIPAddressInReservedRange Belirtilen IP adresi, Azure tarafından gerekli olan bir adres aralığı içerir. Ayrılmış aralıktan kaçınmak için IP adresini değiştirme. IP adresleri
PrivateIPAddressNotInSubnet Belirtilen IP adresi alt ağ aralığının dışındadır. IP adresini alt ağ aralığı içinde olacak şekilde değiştirme. IP adresleri
PropertyChangeNotAllowed Dağıtılan bir kaynakta bazı özellikler değiştirilemez. Bir kaynağı güncelleştiriyorken, değişikliklerinizi izin verilen özelliklerle sınırla. Güncelleştirme kaynağı
RequestDisallowedByPolicy Aboneliğiniz, dağıtım sırasında gerçekleştirmeye çalıştığınız bir eylemi engelleyen bir kaynak ilkesi içerir. Eylemi engelleyen ilkeyi bulun. Mümkünse, ilkenin sınırlamalarını karşılamak için dağıtımınızı değiştirebilirsiniz. İlkeleri çözümleme
ReservedResourceName Ayrılmış ad olmayan bir kaynak adı girin. Ayrılmış kaynak adları
ResourceGroupBeingDeleted Silme işleminin tamamlandıktan sonra tamamlanır.
ResourceGroupNotFound Dağıtım için hedef kaynak grubunun adını kontrol edin. Hedef kaynak grubunun aboneliğiniz içinde zaten mevcut olması gerekir. Abonelik bağlamınızı kontrol edin. Azure CLI PowerShell
ResourceNotFound Dağıtımınız çözümlenemedi bir kaynağa başvurur. Başvuru işlevini kullanımınız senaryo için gerekli parametreleri içerir. Başvuruları çözümleme
ResourceQuotaExceeded Dağıtım abonelik, kaynak grubu veya bölge kotasını aşan kaynaklar oluşturmak için çalışıyor. Mümkünse altyapınızı, kotalar dahilinde kalacak şekilde düzeltin. Aksi takdirde, kotalar için değişiklik isteğite bulundurarak. Kotaları çözümleme
SkuNotAvailable Seçtiğiniz konum için kullanılabilen SKU 'nun (VM boyutu gibi) seçin. SKU'ları çözümleme
StorageAccountAlreadyExists Depolama hesabına benzersiz bir ad verin. Depolama hesabı adını çözümleme
StorageAccountAlreadyTaken Depolama hesabına benzersiz bir ad verin. Depolama hesabı adını çözümleme
StorageAccountNotFound Kullanmaya çalıştığınız depolama hesabının aboneliğini, kaynak grubunu ve adını kontrol edin.
SubnetsNotInSameVnet Bir sanal makinenin yalnızca bir sanal ağı olabilir. Birkaç SıC dağıtırken, bunların aynı sanal ağa ait olduğundan emin olun. Birden çok NIC
SubscriptionNotFound Dağıtım için belirtilen aboneliğe erişilemez. Abonelik kimliği yanlış olabilir, şablonu dağıtan kullanıcının aboneliğe dağıtmak için yeterli izinleri yok veya abonelik kimliği yanlış biçimde olabilir. Kapsamlar arasında dağıtmak için iç içe dağıtımlar kullanırken,aboneliğin GUID'sini sağlar.
SubscriptionNotRegistered Bir kaynağı dağıtırken kaynak sağlayıcısının aboneliğiniz için kayıtlı olması gerekir. Dağıtım için bir Azure Resource Manager şablonu kullanırsanız, kaynak sağlayıcısı aboneliğe otomatik olarak kaydedilir. Bazen otomatik kayıt zamanında tamamlanır. Bu aralıklı hatadan kaçınmak için dağıtımdan önce kaynak sağlayıcısını kaydettirin. Kaydı çözümleme
TemplateResourceCircularDependency Gereksiz bağımlılıkları kaldırın. Döngüsel bağımlılıkları çözümleme
TooManyTargetResourceGroups Tek bir dağıtım için kaynak grubu sayısını azaltma. Kapsamlar arası dağıtım

Hata kodunu bulma

İki tür hata alabilirsiniz:

  • doğrulama hataları
  • dağıtım hataları

Doğrulama hataları dağıtım öncesinde saptanabilen senaryolardan kaynaklanır. Bunlar şablonunuzdaki söz dizimi hataları veya abonelik kotalarınızı aşabilecek kaynak dağıtımı denemeleri olabilir. Dağıtım hataları, dağıtım işlemi sırasında oluşan koşullardan kaynaklanır. Bu paralel olarak dağıtılan bir kaynağa erişme denemesi olabilir.

Her iki tür hata da dağıtım sorunlarını gidermek için kullanabileceğiniz bir hata kodu döndürür. Her iki tür hata da etkinlik günlüğünde görüntülenir. Öte yandan doğrulama hataları dağıtım geçmişinizde görüntülenmez çünkü dağıtım hiç başlatılmamıştır.

Doğrulama hataları

Portal üzerinden dağıtım yaparken değerlerinizi gönderdikten sonra doğrulama hatasını görürsünüz.

portal doğrulama hatasını göster

Ayrıntıları görmek için hatayı seçin. Aşağıdaki görüntüde Bir InvalidTemplateDeployment hatası ve ilkenin dağıtımı engellenmiş olduğunu belirten bir ileti görüyorsunuz.

doğrulama ayrıntılarını göster

Dağıtım hataları

İşlem doğrulamayı geçer ama dağıtım sırasında başarısız olursa dağıtım hatası alırsınız.

PowerShell'le dağıtım hata kodlarını ve iletileri görmek için şunu kullanın:

(Get-AzResourceGroupDeploymentOperation -DeploymentName exampledeployment -ResourceGroupName examplegroup).Properties.statusMessage

Azure CLI ile dağıtım hata kodlarını ve iletileri görmek için şunu kullanın:

az deployment operation group list --name exampledeployment -g examplegroup --query "[*].properties.statusMessage"

Portalda bildirimi seçin.

bildirim hatası

Dağıtım hakkında daha fazla ayrıntıya bakabilirsiniz. Hata hakkında daha fazla bilgi bulmak için seçeneği belirtin.

dağıtım başarısız oldu

Hata iletisini ve hata kodlarını görürsünüz. İki hata kodu olduğuna dikkat edin. İlk hata kodu (DeploymentFailed), hataya çözmek için ihtiyacınız olan ayrıntıları sağlamayan genel bir hatadır. İkinci hata kodu (StorageAccountNotFound) ihtiyacınız olan ayrıntıları sağlar.

hata ayrıntıları

Hata ayıklama günlüğünü etkinleştirme

Bazen neyin yanlış gittiğini öğrenmek için istek ve yanıt hakkında daha fazla bilgiye ihtiyacınız olur. Dağıtım sırasında, dağıtım sırasında ek bilgilerin günlüğe kaydedileceğini talepte bulundurabilirsiniz.

PowerShell

PowerShell'de DeploymentDebugLogLevel parametresini All, ResponseContent veya RequestContent olarak ayarlayın.

New-AzResourceGroupDeployment `
  -Name exampledeployment `
  -ResourceGroupName examplegroup `
  -TemplateFile c:\Azure\Templates\storage.json `
  -DeploymentDebugLogLevel All

aşağıdaki cmdlet ile istek içeriğini inceleme:

(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).Properties.request `
| ConvertTo-Json

Veya yanıt içeriği:

(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).Properties.response `
| ConvertTo-Json

Bu bilgiler şablonda bir değerin yanlış ayarlanmış olup olmadığını belirlemenize yardımcı olabilir.

Azure CLI

Şu anda Azure CLI, hata ayıklama günlüğünün açmasını desteklemez, ancak hata ayıklama günlüğünü de almak için kullanabilirsiniz.

Dağıtım işlemlerini aşağıdaki komutla inceleme:

az deployment operation group list \
  --resource-group examplegroup \
  --name exampledeployment

Aşağıdaki komutla istek içeriğini incele:

az deployment operation group list \
  --name exampledeployment \
  -g examplegroup \
  --query [].properties.request

Aşağıdaki komutla yanıt içeriğini inceleme:

az deployment operation group list \
  --name exampledeployment \
  -g examplegroup \
  --query [].properties.response

İç içe yerleştirilmiş şablon

İç içe bir şablonda hata ayıklama bilgilerini günlüğe almak için debugSetting öğesini kullanın.

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "nestedTemplate",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "uri": "{template-uri}",
      "contentVersion": "1.0.0.0"
    },
    "debugSetting": {
       "detailLevel": "requestContent, responseContent"
    }
  }
}

Sorun giderme şablonu oluşturma

Bazı durumlarda şablonla ilgili sorunları gidermenin en kolay yolu, şablon bölümlerini test etmektir. Hataya neden olduğunu inandığın bölüme odaklanmanızı sağlayan basitleştirilmiş bir şablon oluşturabilirsiniz. Örneğin, bir kaynağa başvururken bir hata alasınız. Şablonun tamamı ile ilgilenmek yerine, soruna neden olan bölümü döndüren bir şablon oluşturun. Doğru parametreleri geçirme, şablon işlevlerini doğru kullanma ve beklediğiniz kaynağı alma konusunda size yardımcı olabilir.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  "storageName": {
    "type": "string"
  },
  "storageResourceGroup": {
    "type": "string"
  }
  },
  "variables": {},
  "resources": [],
  "outputs": {
  "exampleOutput": {
    "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-05-01')]",
    "type" : "object"
  }
  }
}

Veya yanlış ayarlanmış bağımlılıklarla ilgili olduğunu sanarak dağıtım hataları alalısıyoruz. Şablonu basitleştirilmiş şablonlara dönüştürerek test etmek. İlk olarak, yalnızca tek bir kaynağı dağıtan bir şablon oluşturun (örneğin, SQL Server). Bu kaynağı doğru şekilde tanımlandığınıza emin olun, buna bağlı bir kaynak ekleyin (örneğin, SQL Veritabanı). Bu iki kaynak doğru şekilde tanımlandığı zaman, diğer bağımlı kaynakları (denetim ilkeleri gibi) ekleyin. Her test dağıtımı arasında, bağımlılıkları yeterince test etmek için kaynak grubunu silin.

Sonraki adımlar