Aracılığıyla paylaş


CLI komutlarını Bicep

Bu makalede, Bicep CLI'da kullanabileceğiniz komutlar açıklanmaktadır. Azure CLI kullanarak veya doğrudan Bicep CLI komutlarını çağırarak bu komutları yürütebilirsiniz. Her yöntem ayrı bir yükleme işlemi gerektirir. Yüklemeler hakkında daha fazla bilgi için bkz. Azure CLI ve Azure PowerShell.

Bu kılavuz, Azure CLI komutların nasıl çalıştırılacaklarını gösterir. komutları Azure CLI çalıştırırken az ile başlatın. Azure CLI kullanmıyorsanız, komutları her birinin başında az olmadan çalıştırın. Örneğin, az bicep build olur bicep buildve az bicep version olur bicep --version.

derleme

build komutu bir Bicep dosyasını JSON Azure Resource Manager şablonuna (ARM şablonu) dönüştürür. Genellikle, bir Bicep dosyası dağıttığınızda otomatik olarak çalıştığından bu komutu çalıştırmanız gerekmez. Bicep dosyanızdan oluşturulan JSON ARM şablonunu görmek istediğinizde el ile çalıştırın.

Aşağıdaki Bicep özelliklerinden herhangi birinin kullanılması, dil sürümü 2.0 kod oluşturmayı otomatik olarak etkinleştirir:

Aşağıdaki örnek, main.bicep adlı bir Bicep dosyasını dönüştürürmain.json adlı ARM şablonuna . Yeni dosya, Bicep dosyasıyla aynı dizinde oluşturulur:

bicep build main.bicep

Sonraki örnek, main.json farklı bir dizine kaydeder:

bicep build main.bicep --outdir c:\jsontemplates

Aşağıdaki örnek, oluşturulacak dosyanın adını ve konumunu belirtir:

bicep build main.bicep --outfile c:\jsontemplates\azuredeploy.json

dosyasını 'a yazdırmak için stdoutşunu kullanın:

bicep build main.bicep --stdout

Bicep dosyanız dış kayıt defterine başvuran bir modül içeriyorsa, build komutu otomatik olarak restore çağırır. komutu restore dosyayı kayıt defterinden alır ve yerel önbellekte depolar.

Not

Komut restore önbelleği yenilemez. Daha fazla bilgi için bkz . geri yükleme.

Otomatik geri yüklemeyi önlemek için şu anahtarı kullanın --no-restore :

bicep build --no-restore <bicep-file>

--no-restore anahtarını kullanmak için Bicep CLI sürüm 0.4.X veya üzeri olmalıdır.

Dış modüllerden biri henüz önbelleğe alınmadıysa anahtarla --no-restore derleme işlemi başarısız olur:

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" hasn't been restored.

Bu hatayı aldığınızda, anahtarı olmadan komutunu çalıştırın build veya önce komutunu çalıştırın--no-restore.bicep restore

build-params

build-params komutu bir JSON parametre dosyasına bir .bicepparam dosya oluşturur:

bicep build-params params.bicepparam

Bu komut bir params.bicepparam parametre dosyasını params.json JSON parametre dosyasına dönüştürür.

Decompile

decompile komutu bir JSON ARM şablonunu Bicep dosyasına dönüştürür:

bicep decompile main.json

Bu komut, main.json ile aynı dizinde main.bicep adlı bir dosya oluşturur. aynıysa. bicep aynı dizinde var, var olan Bicep dosyasının üzerine yazmak için --force anahtarını kullanın.

Bu komutu kullanma hakkında daha fazla bilgi için bkz. Decompile JSON ARM template to Bicep.

decompile-params

decompile-params komutu bir JSON parametre dosyasını parametre .bicepparam dosyasına koda ayırır.

bicep decompile-params azuredeploy.parameters.json --bicep-file ./dir/main.bicep

Bu komut, bir azuredeploy.parameters.json parametre dosyasını azuredeploy.parameters.bicepparam dosyasına ayırır. using bildiriminde başvuruda bulunılan Bicep dosyasının yolunu (.bicepparam dosyasına göre) belirtmek için --bicep-file kullanın.

format

format komutu, önerilen stil kurallarına uygun olacak şekilde bir Bicep dosyası biçimlendirmektedir. Bunu, Bicep dosyalarınız için bir kod biçimlendirici veya "daha güzel" olarak düşünün. Visual Studio Code'daki SHIFT+ALT+F kısayoluyla aynı işleve sahiptir.

bicep format main.bicep

generate-params

generate-params komutu, verilen Bicep dosyasından bir parametre dosyası oluşturur ve mevcut bir parametre dosyası varsa bunu güncelleştirir.

bicep generate-params main.bicep --output-format bicepparam --include-params all

Bu komut, main.bicepparam adlı bir Bicep parametre dosyası oluşturur. Parametre dosyası, varsayılan değerlerle yapılandırılsa da yapılandırılmasa da Bicep dosyasındaki tüm parametreleri içerir.

bicep generate-params main.bicep --outfile main.parameters.json

Bu komut, main.parameters.json adlı bir parametre dosyası oluşturur. Parametre dosyası yalnızca Bicep dosyasında yapılandırılmış varsayılan değerleri olmayan parametreleri içerir.

yükle

install komutu, Bicep CLI'yi yerel ortamınıza ekler ve yalnızca Azure CLI aracılığıyla kullanılabilir. Daha fazla bilgi için bkz. Bicep araçlarını yükleme.

En son sürümü yüklemek için şunu kullanın:

Geçerli Değil

Belirli bir sürümü yüklemek için aşağıdaki komutu kullanın:

Geçerli Değil

jsonrpc

jsonrpc komutu, JSON-RPC arabirimiyle Bicep CLI'yi çalıştırır. Bu arabirimi kullanarak yapılandırılmış çıkışla program aracılığıyla etkileşim kurabilirsiniz. Ayrıca, birden çok dosya derlerken soğuk başlatma gecikmelerinden kaçınabilirsiniz. Bu kurulum, .NET olmayan dillerde program aracılığıyla Bicep dosyalarla etkileşim kurmak için kitaplıklar oluşturmayı destekler.

Giriş ve çıkış göndermek ve almak için kablo biçimi üst bilgiyle ayrılmıştır. Satır başı ve \n satır besleme karakterlerinin bulunduğu ve temsil ettiği \r aşağıdaki yapıyı kullanır:

Content-Length: <length>\r\n\r\n<message>\r\n\r\n
  • <length> , sonundaki <message>\r\n\r\ndahil olmak üzere dizenin uzunluğudur.
  • <message> ham JSON iletisidir.

Örneğin:

Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n

Aşağıdaki yöntemler JSON-RPC arabirimi aracılığıyla kullanılabilir:

  • bicep/biçim

    bir Bicep dosyasını biçimlendirin.

    • İstek:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "bicep/format",
        "params": {
          "path": "/path/to/file.bicep"
        }
      }
      
    • Yanıt:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "result": {
          "success": true,
          "diagnostics": [],
          "contents": "param foo string\n\nresource storage 'Microsoft.Storage/storageAccounts@2025-01-01' = {\n  name: 'mystorageaccount'\n  location: 'East US'\n}\n"
        }
      }
      

      Başarılı olduğunda, "success": true döndürülür ve içerik biçimlendirilmiş Bicep kaynağını tutar. Hata durumunda, "success": falsediagnostics hatanın açıklanmasıyla.

  • bicep/sürüm

    Bicep CLI sürümünü döndürür.

    • İstek:

      {
        "jsonrpc": "2.0",
        "id": 0,
        "method": "bicep/version",
        "params": {}
      }
      
    • Yanıt:

      {
        "jsonrpc": "2.0",
        "id": 0,
        "result": {
          "version": "0.24.211"
        }
      }
      

Kullanılabilir yöntemler, istek ve yanıt gövdeleri için bkz. ICliJsonRpcProtocol.cs. JSONRPC bağlantısı kurma ve Node kullanarak Bicep dosyalarıyla program aracılığıyla etkileşim kurma örneği için bkz. jsonrpc.test.ts.

Adlandırılmış kanal kullanımı

Mevcut bir adlandırılmış kanala JSONRPC istemcisi olarak bağlanmak için aşağıdaki söz dizimini kullanın:

bicep jsonrpc --pipe <named_pipe>`

<named_pipe> , JSONRPC istemcisini bağlamak için mevcut adlandırılmış bir kanaldır.

macOS veya Linux üzerinde adlandırılmış bir kanala bağlanmak için:

bicep jsonrpc --pipe /tmp/bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock

Windows adlandırılmış kanala bağlanmak için:

bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`

Daha fazla örnek için bkz. C# ve node.js.

TCP yuvası kullanımı

Mevcut bir TCP yuvasına JSONRPC istemcisi olarak bağlanmak için aşağıdaki söz dizimini kullanın:

bicep jsonrpc --socket <tcp_socket>

<tcp_socket> JSONRPC istemcisinin bağlandığı yuva numarasıdır.

TCP yuvasına bağlanmak için:

bicep jsonrpc --socket 12345

stdin ve stdout kullanımı

JSONRPC arabirimini çalıştırmak için aşağıdaki söz dizimini kullanın. İletiler için ve stdout kullanınstdin:

bicep jsonrpc --stdio

Lint

lint komutu, Bicep dosyasının hatalarını ve linter kuralı ihlallerini döndürür.

bicep lint main.bicep

Bicep dosyanız dış kayıt defterine başvuran bir modül içeriyorsa, lint komutu otomatik olarak restore çağırır. komutu restore dosyayı kayıt defterinden alır ve yerel önbellekte depolar.

Not

Komut restore önbelleği yenilemez. Daha fazla bilgi için bkz . geri yükleme.

Otomatik geri yüklemeyi önlemek için şu anahtarı kullanın --no-restore :

bicep lint --no-restore <bicep-file>

Dış modüllerden biri henüz önbelleğe alınmadıysa anahtarla --no-restore lint işlemi başarısız olur:

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.

Bu hatayı aldığınızda, komutunu anahtar olmadan lint çalıştırın --no-restore veya önce çalıştırınbicep restore.

liste sürümleri

list-versions komutu, Bicep CLI'nın tüm kullanılabilir sürümlerini döndürür. Yeni bir sürümü yükseltmek mi yoksa yüklemek mi istediğinizi görmek için bu komutu kullanın. Bu komut yalnızca Azure CLI aracılığıyla kullanılabilir.

Geçerli Değil

publish

publish komutu kayıt defterine bir modül ekler. Azure kapsayıcı kayıt defteri mevcut olmalıdır ve kayıt defterinde yayımlama hesabı doğru izinlere sahip olmalıdır. Modül kayıt defterini ayarlama hakkında daha fazla bilgi için bkz. Bicep modülleri için özel kayıt defteri kullanma. Modülü yayımlamak için hesabın kayıt defterine erişmek için doğru profile ve izinlere sahip olması gerekir. Bicep yapılandırma dosyasında kayıt defterinde kimlik doğrulaması yapmak için profil ve kimlik bilgisi önceliğini yapılandırabilirsiniz.

Dosyayı kayıt defterinde yayımladıktan sonra bir modülde başvurabilirsiniz.

publish komutunu ve --documentationUri/-d parametresini kullanmak için Bicep CLI sürüm 0.14.X veya sonraki bir sürümüne sahip olmanız gerekir.

Bir modülü kayıt defterinde yayımlamak için şunu kullanın:

bicep publish <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>

Örneğin:

bicep publish storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

Komut, publish bicepconfig.json dosyasında belirtilen diğer adları tanımıyor. Tam modül yolunu belirtin.

Uyarı

Aynı hedefe yayımlamak eski modülün üzerine yazar. Güncelleştirme sırasında sürümü artırma.

geri yükleme

Bicep dosyanız bir kayıt defterinde yayımladığınız modülleri kullandığında, restore komutu kayıt defterinden tüm gerekli modüllerin kopyalarını alır. Bu kopyaları yerel önbellekte depolar. Bicep dosyası yalnızca dış dosyalar yerel önbellekte kullanılabilir olduğunda oluşturulabilir. Normalde, derleme işlemi tarafından otomatik olarak tetiklendiğinden geri yüklemeyi çalıştırmak gerekli değildir.

Dış modülleri yerel önbelleğe geri yüklemek için hesabın kayıt defterine erişmek için doğru profile ve izinlere sahip olması gerekir. Bicep yapılandırma dosyasında kayıt defterinde kimlik doğrulaması yapmak için profile ve kimlik bilgisi önceliği yapılandırabilirsiniz.

restore komutunu kullanmak için Bicep CLI sürüm 0.14.X veya üzeri olmalıdır.

Bir dosyanın dış modüllerini el ile geri yüklemek için şunu kullanın:

bicep restore <bicep-file>

Sağladığınız Bicep dosyası, dağıtmak istediğiniz dosyadır. Kayıt defterine bağlanan bir modül içermelidir. Örneğin, aşağıdaki dosyayı geri yükleyebilirsiniz:

module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
  name: 'storageDeploy'
  params: {
    storagePrefix: 'examplestg1'
  }
}

Yerel önbelleği şu şekilde bulabilirsiniz:

  • Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • Linux'ta

    /home/<username>/.bicep
    
  • Mac'te

    ~/.bicep
    

Bir restore modül zaten önbelleğe alınmışsa komut önbelleği yenilemez. Önbelleği yenilemek için modül yolunu önbellekten silebilir veya komutuyla --force anahtarı kullanabilirsinizrestore.

snapshot

Bicep CLI v0.41.2 veya daha yeni bir sürümünü kullanarak snapshot komutunu kullanarak .bicepparam dosyasından Bicep dağıtımının normalleştirilmiş, belirleyici bir gösterimini oluşturabilirsiniz. Bir yeniden düzenlemenin Azure hiçbir şey dağıtmadan hangi değişikliklere neden olacağını anlamak için bu anlık görüntüyü daha sonraki anlık görüntülerle karşılaştırabilirsiniz. Bu komut özellikle şunlar için kullanışlıdır:

  • Görsel Farklar: Yeniden düzenlemenin (kodu modüle taşıma gibi) temel alınan kaynak tanımlarını tam olarak nasıl değiştirdiğini görmek.
  • Karmaşık İfadeler: Dağıtımdan önce karmaşık bir dizenin veya değişkenin gerçekte ne olduğunu anlama.
  • CI/CD Doğrulaması: Çekme istekleri sırasında altyapı mantığındaki istenmeyen değişiklikleri otomatik olarak yakalar.

Anlık görüntü oluşturma

Bu komut bir .snapshot.json dosya oluşturur. Bu dosya "normalleştirilmiştir", yani kaynaklara odaklanabilmeniz için modül sınırları gibi gürültüyü giderir.

bicep snapshot --mode overwrite <bicep-param-file>

Aşağıdaki JSON dosyasında bir anlık görüntü örneği gösterilmektedir:

{
  "predictedResources": [
    {
      "id": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/stmyappstorage001', subscription().subscriptionId, resourceGroup().name)]",
      "type": "Microsoft.Storage/storageAccounts",
      "name": "stmyappstorage001",
      "apiVersion": "2025-01-01",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    }
  ],
  "diagnostics": []
}

Değişiklikleri doğrulama

Anlık görüntü oluşturduktan sonra komutunu doğrulama modunda çalıştırın. Geçerli Bicep kodunuzu kaydedilen anlık görüntüyle karşılaştırır ve what-if komutuna çok benzer ancak tamamen yerel bir görsel fark gösterir.

bicep snapshot --mode validate <bicep-param-file>

Örnek çıkış şöyle görünür:

PS C:\bicep> bicep snapshot --mode validate main.bicepparam
Snapshot validation failed. Expected no changes, but found the following:

Scope: <unknown>

  ~ [format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/stmyappstorage001', subscription().subscriptionId, resourceGroup().name)]
    ~ apiVersion: "2025-01-01" => "2025-06-01"
    ~ sku.name:   "Standard_LRS" => "Standard_GRS"

"Anlık görüntü doğrulaması başarısız oldu", iki anlık görüntü arasındaki farkları gösterir.

BICEP CLI anlık görüntüsü ve Durum aşağıdaki farklara sahiptir:

Özellik bicep snapshot az deployment group what-if
Yürütme Yalnızca yerel (Çevrimdışı) Bulut tabanlı (Çevrimiçi)
Karşılaştırma Kodu ve kaydedilmiş dosyayı karşılaştırır Kod ile canlı Azure durumunu karşılaştırır
Hız Son derece hızlı Daha yavaş (API çağrıları gerektirir)
Kullanım Örneği Yeniden düzenleme ve mantık testi Dağıtım öncesi son denetim

Bağlam sağlama

Bicep anlık görüntüsünü çalıştırırken CLI, kodunuzun yerel değerlendirmesini gerçekleştirir. Azure konuşmadığından, buluta Abonelik Kimliğinizi veya geçerli Kaynak Grubu adını "soramaz".

Kodunuz ortam işlevleri (gibi subscription().id) kullanıyorsa, CLI bağımsız değişkenleri aracılığıyla belirli bir bağlam sağlamadığınız sürece anlık görüntü başarısız olur veya yer tutucular döndürür.

Gerçek bir dağıtım ortamının benzetimini yapmak için aşağıdaki bayrakları geçirebilirsiniz:

Argument Amaç Örnek Değer
--subscription-id tarafından döndürülen değeri değiştirir subscription().subscriptionId 00000000-1111-2222-3333-444444444444
--resource-group tarafından döndürülen değeri değiştirir resourceGroup().name my-production-rg
--location için varsayılan konumu ayarlar deployment().location westeurope
--tenant-id tarafından döndürülen değeri değiştirir tenant().tenantId 72f988bf-86f1-41af-91ab-2d7cd011db47
--management-group tarafından döndürülen değeri değiştirir managementGroup().name my-corp-mg
bicep snapshot main.bicepparam \
  --subscription-id 00000000-0000-0000-0000-000000000000 \
  --resource-group my-temp-rg \
  --location eastus \
  --mode overwrite

yükseltme

Komut, upgrade yüklü sürümünüzü en son sürümle güncelleştirir. Bu komut yalnızca Azure CLI aracılığıyla kullanılabilir.

Geçerli Değil

sürüm

Komut version , yüklü sürümünüzü döndürür:

bicep --version

Bicep CLI'yı yüklemediyseniz, Bicep CLI'nin bulunamadığını belirten bir hata iletisi görürsünüz.

Komut, sürüm numarasını gösterir:

Bicep CLI version 0.29.45 (57a44c0230)

Sonraki adımlar

Bicep dosyası dağıtma hakkında daha fazla bilgi edinmek için bkz: