Bicep nedir?

Bıcep, Azure kaynaklarını dağıtmak için bildirim temelli söz dizimi kullanan, etki alanına özgü bir dildir (DSL). Kısa sözdizimi, güvenilir tür güvenliği ve kod yeniden kullanımı için destek sağlar. Bıcep 'nin, Azure altyapınız için kod çözümleri olarak en iyi yazma deneyimini sunduğunu düşünüyoruz.

Azure Resource Manager şablonlarınızı geliştirmek için JSON yerine Bıcep kullanabilirsiniz (ARM şablonları). ARM şablonu oluşturmak için JSON sözdizimi ayrıntılı olabilir ve karmaşık ifadeler gerektirebilir. Bıcep sözdizimi karmaşıklığı azaltır ve geliştirme deneyimini geliştirir. Bıcep, ARM şablonu üzerinde saydam bir soyutlamadır ve JSON şablonu özelliklerini kaybeder. Dağıtım sırasında Bıcep CLı, bir Bıcep dosyasını ARM şablonuna JSON 'a transpiles.

Bıcep, uygulamaları yazmak için genel programlama dili olarak tasarlanmamıştır. Bir Bıcep dosyası, kaynak oluşturmak için bir dizi programlama komutu yazmadan Azure kaynaklarını ve kaynak özelliklerini bildirir.

Bir ARM şablonunda geçerli olan kaynak türleri, API sürümleri ve özellikler bir Bıcep dosyasında geçerlidir.

Bicep işinin durumunu izlemek için, bıcep proje deposunabakın.

Bıcep hakkında bilgi edinmek için aşağıdaki videoya bakın.

başlarken

Bıcep ile başlamak için:

  1. Araçları yükler. Bkz. bicep geliştirme ve dağıtım ortamlarını ayarlama. alternatif olarak, bıcep oynatma 'yı kullanarak bicep ve eşdeğer JSON tarafını yan yana görüntüleyebilir veya önceden yapılandırılmış bir yazma ortamı almak için VS Code devcontainer/codespaces depoını kullanabilirsiniz.
  2. Hızlı başlangıç ve Microsoft Learn bicep modüllerinidoldurun.

Var olan bir ARM şablonunu Bıcep 'ye derlemek için bkz. ARM şablonlarını Bıcep 'ye derlemeyi kaldırma.

ek bicep örnekleri, bicep GitHubdeposunda bulunabilir.

Bicep ve diğer araçların avantajları

Bıcep diğer seçeneklere aşağıdaki avantajları sağlar:

  • Tüm kaynak türleri ve API sürümleri Için destek: bıcep, Azure hizmetleri için tüm ÖNIZLEME ve GA sürümlerini hemen destekler. Kaynak sağlayıcısı yeni kaynak türleri ve API sürümleri sunarak, bunları Bıcep dosyanızda kullanabilirsiniz. Yeni hizmetleri kullanmadan önce araçların güncelleştirilmesini beklemeniz gerekmez.
  • Basit sözdizimi: denk JSON şablonuyla karşılaştırıldığında Bıcep dosyaları daha kısa ve daha kolay okunabilir. Bıcep, programlama dillerinin önceki bir bilgisini gerektirmez. Bıcep sözdizimi bildirime sahiptir ve hangi kaynak ve kaynak özelliklerini dağıtmak istediğinizi belirtir.
  • yazma deneyimi: bıcep dosyalarınızı oluşturmak için VS Code kullandığınızda, birinci sınıf bir yazma deneyimi alırsınız. Düzenleyici zengin tür güvenliği, IntelliSense ve sözdizimi doğrulaması sağlar.
  • Modülerlik: modüllerikullanarak bıcep kodunuzu yönetilebilir parçalara kesebilirsiniz. Modül bir dizi ilgili kaynağı dağıtır. Modüller kodu yeniden kullanmanıza ve geliştirmeyi basitleştirmenize imkan tanır. Bu kaynakları dağıtmanız gereken her zaman modülü bir Bıcep dosyasına ekleyin.
  • Azure hizmetleriyle tümleştirme: bıcep, Azure ilkesi, şablon özellikleri ve planlar gibi Azure hizmetleriyle tümleşiktir.
  • Yönetilecek durum veya durum dosyası yok: tüm durum Azure 'da depolanır. Kullanıcılar işbirliği yapabilir ve güncelleştirmelerin gerekli olduğu şekilde işlenmesini sağlayabilir. Şablonunuz dağıtılmadan önce değişiklikleri önizlemek için ne yapılır işlemini kullanın.
  • Maliyet ve açık kaynak yok: bıcep tamamen ücretsizdir. Premium yetenekler için ödeme yapmak zorunda değilsiniz. Microsoft desteği tarafından da desteklenir.

Bıcep geliştirmeleri

Bıcep, denk JSON ile karşılaştırıldığında daha kolay ve daha kısa bir sözdizimi sunmaktadır. [...]İfadeler kullanmayın. Bunun yerine, doğrudan işlevleri çağırır ve parametrelerden ve değişkenlerden değerler alırsınız. Dağıtılan her kaynağa bir sembolik ad verirsiniz ve bu, şablonunuzda bu kaynağa başvurmayı kolaylaştırır.

Örneğin, aşağıdaki JSON bir kaynak özelliğinden çıkış değeri döndürüyor.

"outputs": {
  "hostname": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))).dnsSettings.fqdn]"
    },
}

Bıcep içindeki eşdeğer çıkış ifadesinin yazılması daha kolay. Aşağıdaki örnek, şablon içinde tanımlı bir kaynak için simgesel ad olan Publicıp adı kullanılarak aynı özelliği döndürür:

output hostname string = publicIP.properties.dnsSettings.fqdn

Sözdiziminin tam karşılaştırması için bkz. Şablonlar IÇIN JSON ve Bıcep karşılaştırması.

Bıcep, kaynaklar arasındaki bağımlılıkları otomatik olarak yönetir. Bir dependsOn kaynağın sembolik adı başka bir kaynak bildiriminde kullanıldığında ayarından kaçınabilirsiniz.

Bicep dosyasının yapısı, JSON şablonundan daha esnektir. Dosya içinde herhangi bir yerde parametreler, değişkenler ve çıktılar bildirebilirsiniz. JSON 'da, şablonun ilgili bölümlerinin içindeki tüm parametreleri, değişkenleri ve çıkışları bildirmeniz gerekir.

SSS

Var olan bir dili kullanmak yerine neden yeni bir dil oluşturulsun?

Bıcep 'yi yeni bir dil yerine var olan ARM şablon diline bir düzeltme olarak düşünebilirsiniz. Sözdizimi değişti, ancak çekirdek işlev ve çalışma zamanı aynı kalır.

Bıcep 'yi geliştirmeye başlamadan önce, var olan bir programlama dilini kullanmayı kabul ediyoruz. Hedef izleyicilerimize, başka bir dille çalışmaya başlamak yerine Bıcep 'nin öğrenmekte olduğunu karartık.

Önerinizi Terkform veya diğer üçüncü taraf altyapısına kod teklifleri olarak odaklanmadık?

Farklı kullanıcılar farklı yapılandırma dilleri ve araçları tercih eder. Bu araçların tümünün Azure 'da harika bir deneyim sunduğunuzdan emin olmak istiyoruz. Bıcep, bu çabanın bir parçasıdır.

Terrayform kullanıyorsanız, geçiş yapmak için bir neden yoktur. Microsoft, Azure 'da Tersform 'un en iyi şekilde suntığlarından emin olmanızı taahhüt etmektedir.

ARM şablonlarını seçen müşteriler için Bıcep 'nin yazma deneyimini geliştirdik. Bıcep, kod olarak altyapı benimseyen müşterilerin geçişine de yardımcı olur.

Bu, üretim kullanımı için mi hazırlanıyor?

Evet. V 0,3 'den başlayarak Bıcep, Microsoft destek planları tarafından desteklenir. Bıcep, ARM şablonlarıyla neler yapabileceğinize eşlik etti. Şu anda planlanmış hiçbir Son değişiklik yoktur, ancak gelecekte önemli değişiklikler oluşturabileceğiz.

Bıcep yalnızca Azure için mi?

Şu anda Bıcep 'nin Azure ötesinde genişletecek şekilde planlanmıyor. Azure 'ı tam olarak desteklemek ve dağıtım deneyimini iyileştirmek istiyoruz.

Hedef toplantı, Azure dışındaki bazı API 'lerle çalışmayı gerektirir. Bu senaryolar için genişletilebilirlik noktaları sağlamamız bekleniyor.

Var olan ARM Şablonlarıma ne olur?

Her zaman sahip oldukları için tamamen çalışmaya devam ederler. Herhangi bir değişiklik yapmanız gerekmez. Temel alınan ARM şablonu JSON dilini desteklemeye devam edeceğiz. Bıcep dosyaları JSON 'a derlenir ve bu JSON dağıtım için Azure 'a gönderilir.

Hazırsanız, JSON dosyalarını Bıcep 'de derlemeyikaldırabilirsiniz.

Bilinen sınırlamalar

  • Tek satırlı nesne ve diziler için destek yoktur. Örneğin, ['a', 'b', 'c'] desteklenmez. Daha fazla bilgi için bkz. diziler, nesneler.

  • Uzun satırları birden çok satıra bölmek için destek yoktur. Örneğin:

    resource sa 'Microsoft.Storage/storageAccounts@2019-06-01' = if (newOrExisting == 'new') {
      ...
    }
    

    Şu şekilde yazılamıyor:

    resource sa 'Microsoft.Storage/storageAccounts@2019-06-01' =
        if (newOrExisting == 'new') {
          ...
        }
    
  • Her kaynak türü için tek bir apiProfile öğesini set apiVersion ile eşlemek için kullanılan apiProfile kavramı desteklenmez.

  • Kullanıcı tanımlı işlevler (UDF 'ler) için destek yoktur.

Sonraki adımlar

Kullanmaya başlayın hızlı başlangıç ile birlikte.