Test araç seti modülünü kullanarak en iyi yöntemleri uygulama

Tamamlandı

Azure Resource Manager şablonları (ARM şablonları) geliştirirken, geçerli şablonlar oluşturmayı kolaylaştırmanın ve kalitelerini artırmak için öneriler sağlamanın yolları vardır. Bu öneriler nedir ve şablonunuzun bunlara bağlı kalması ne gibi faydalar sağlayabilir?

Farklı düzeylerde öneriler vardır: parametrelerden değişkenlere ve kaynaklarınıza uygulanan önerilere kadar her şey. Burada bu önerilere genel bakış yapacak ve bunlara bağlı kalmanın sağlayacağı avantajlar hakkında bilgi edineceksiniz:

  • Bakım. Şablonu ilk kez oluşturmaktan güncelleştirmeye kadar devam eden geliştirme aşamasında sahip olduğunuz bunu temiz ve düzenli tutmak giderek daha zor bir hal alabilir. Şablonunuz büyüdükçe parametreleriniz ve değişkenleriniz de artar. Bu yapıların her birinin ne için kullanıldığını ve bunları uygun bir şekilde nasıl kullanacağınızı anlamanız önemlidir.

    Bir parametrenin kötü adlandırıldığı ve ne yaptığını anlamakta zorlandığınız bir senaryo düşünün. Veya yapmamanız gereken sabit kodlu bir değer kullanıyorsunuz ve bir şey değiştiğinde Azure hizmetleriniz kapanıyor. Tüm bu sorunlar, baktığınız şeyi anlamak ve daha sonra kapatmak zorunda olmanın yüküne katkıda bulunur. Öğeleri adlandırma ve temizleme açısından belirli bir disiplin içinde hareket etmek bu senaryoların etkilerinin azaltılmasına yardımcı olabilir.

  • Doğruluk. Her şeyi doğru şekilde adlandırmaya çalışabilirsiniz, ancak izlenecek çok fazla kural olabilir. Bu gibi durumlar, size tüm bu kuralları ve düzenlemeleri anımsatan ve bunları uygulayan bir araç gerektirir.

  • Esneklik. Şablonlarınızın herhangi bir ortamda kullanılabilecek kadar esnek olduğundan emin olun. Şablonlarınızı düzgün parametreleştirmezseniz, şablonları yeniden kullanmak mümkün olmayabilir.

  • Genişletilebilirlik. Bazen kendi önerilerinizi eklemek isteyebilirsiniz. Şirketinizin veya ekibinizin uygulamak için kendi kuralları olabilir.

Dekont

Kodu bu tür önerilerle denetlemeye bazen lint adı verilir.

ARM Şablonu Test Araç Seti

Test aracı kullanmak iyi bir fikirdir. Bu sayede sorunları bulacak ve şablonlarınızı daha iyi hale getirecek bir aracın var olduğunu bilerek yazmaya odaklanabilirsiniz. Böyle bir araç vardır: ARM Şablonu Test Araç Seti, bazen ARM-TTK olarak adlandırılır. Bu araç, daha önce belirtilen sorunları gidermek için bir dizi test çalıştırır. Testler aşağıdaki kategoriler halinde gruplanabilir:

  • Kullanıcının amacını doğrulama. Bu kategori, bildirilen değişkenlerin ve parametrelerin tamamının kullanılıp kullanılmadığını inceler ve kullanılmayanlar varsa uyarır.
  • Güvenlik uygulamalarını izleme. Bir diğer önemli nokta da şablonun döndürdüğü verilerin arasında hassas bilgiler (API gizli dizileri gibi) olmadığından emin olmaktır.
  • Uygun dil yapılarını kullanma. Sabit kodlanmış değerler kullanmamak için dil yapıları veya yardımcı işlevler kullanmanız gerekir.

Dekont

Bunlar öneriden ibarettir ve gereksinim değildir. Ancak bunları izlemenizi kesinlikle öneririz.

Aracı yükleme

Araç bir PowerShell modülüdür. Çalıştırabilmek için şu adımları izlemeniz gerekir:

  1. PowerShell'i yükleyin. Bu görev Linux, Mac veya Windows’da olmanıza bağlı olarak farklı şekilde yapılır.
  2. Modülü indirin. Modül bir GitHub deposunda barındırılır. Betiği oradan indirebilir veya bir git clone komutuyla getirebilirsiniz.
  3. Modülü içeri aktarın. Bu adım, BIR PowerShell oturumuna girdiğiniz ve ARM-TTK komutlarını kullanılabilir hale getiren tek satırlık bir yönergedir.

Tüm bunların nasıl yapılacağını bir sonraki ünitede göreceksiniz. Aracı yükledikten sonra, testleri şablonunuz üzerinde çalıştırmaya hazırsınız demektir.

Testleri çalıştırma

Testleri çalıştırmak için modülü uygun parametrelerle çağırmak gerekir. -TemplatePath , dağıtım şablonu dosyasının konumunu gösteren bir dize bekleyen zorunlu bir parametredir. Şablon dosya adı azuredeploy.json veya maintemplate.json olmalıdır. Bu bilgilerin ışığında tipik bir test çalıştırması aşağıdaki komuta benzer olacaktır:

Test-AzTemplate -TemplatePath path/to/template

Araç, şablon dosyasını test eder ve aynı dizindeki ve alt klasörlerindeki tüm şablon dosyalarını test eder.

Bir test çalıştırmasının tipik bir sonucu aşağıdaki gibi görünecektir:

[+] adminUsername Should Not Be A Literal (24 ms)
[+] apiVersions Should Be Recent (18 ms)
[+] artifacts parameter (16 ms)
[+] DeploymentTemplate Schema Is Correct (17 ms)
[+] IDs Should Be Derived From ResourceIDs (15 ms)
[-] Location Should Not Be Hardcoded (41 ms)
     azuredeploy.json must use the location parameter, not resourceGroup().location (except when used as a default value in the main template)

Başarılı testler yeşil olarak kodlanır ve ön ek olarak tarafından [+]eklenir. Başarısız testler ön ekiyle [-]kırmızı olarak kodlanır.

Test çalıştırmanızı test parametreleriyle yapılandırma

Aracı çalıştırırken parametre -TemplatePath eklemenin ne kadar zorunlu olduğunu şimdiye kadar gördünüz. Araç, isteğe bağlı parametreleri de kabul eder. Bu parametreler, belirli dosyaları veya belirli testleri çalıştırmanızı sağlar. Bu parametreleri kullanarak şablonlarınızın yazma ile hata ayıklama süreçlerine ilişkin daha ayrıntılı denetim elde edebilirsiniz.

parametresi -File belirli bir dosyayı çalıştırmak için kullanılır. parametresi -Test , çalıştırılacak bir test senaryosu belirtmenize olanak tanır.

Parametreleri aşağıdaki yollarla kullanabilirsiniz:

  • Tek bir dosyada test çalıştırma. Testleri yalnızca üzerinde çalıştığınız dosyada çalıştırmanız yararlı olabilir. Bu durum, ilgili şablon dosyasını yazmaya odaklanmanızı sağlar. Bir diğer avantaj ise çıkışın daha az gereksiz bilgi içermesi ve yalnızca ilgilendiğiniz verileri göstermesidir. parametresini -File bir dosyanın yoluyla (dosya adı dahil) kullanarak testleri yalnızca bu dosyada çalıştırabilirsiniz.

    Önemli

    parametresi yine de azuredeploy.json veya maintemplate.json dosyasının belirtilen konumda mevcut olmasını bekler.

  • Tüm dosyalarda tek bir test türünü çalıştırma. Bazen tek bir test türü çalıştırarak bu senaryoyla ilgili ölçütleri karşıladığınızdan emin olmanız faydalı olabilir. parametresini -Testkullanarak bu görevi gerçekleştirebilirsiniz. parametresi, tırnak içinde testin tam adını bekler; Örneğin, Kaynakların Konumu Olmalıdır.