Uzantı bildirimini tanımlama

Her Azure Geliştirici CLI 'sı (azd) uzantısı, meta verilerini ve özelliklerini açıklayan bir extension.yaml bildirim içerir. azd kullanıcıların uzantınızı bulmasına, yüklemesine ve anlamasına yardımcı olmak için uzantı kayıt defterinde bu meta verileri kullanır. Bu makalede, Örnek uzantı oluşturma hızlı başlangıç kılavuzundaki Contoso Resource Tagger örnek uzantısı kullanılarak bildirim özellikleri açıklanır. Aynı kavramları herhangi bir uzantıya uygulayabilirsiniz.

Note

azd uzantılar şu anda beta sürümündedir.

Bildirim özellikleri

Bildirim extension.yaml aşağıdaki özellikleri destekler.

Gerekli özellikler

Her bildirim aşağıdaki özellikleri içermelidir:

Property Description
id Uzantının benzersiz tanımlayıcısı, örneğin contoso.azd.tagger.
version MAJOR.MINOR.PATCH biçiminde anlamsal sürüm.
displayName Uzantının insan tarafından okunabilen adı.
description Uzantının ayrıntılı açıklaması.

Her manifest ayrıca capabilities veya dependencies içermelidir. Komutlar veya sağlayıcılar sunan bir uzantı, capabilities bildirir. Bunun yerine bir uzantı paketi bildirir dependencies .

İsteğe bağlı özellikler

Bildirim aşağıdaki isteğe bağlı özellikleri de destekler:

Property Description
namespace Uzantının komutlarını gruplandıran komut ad alanı, örneğin tagger.
entryPoint Giriş noktası görevi gören yürütülebilir dosya veya betik.
language Uzantının yazıldığı programlama dili, örneğin go.
capabilities Uzantı özellikleri dizisi.
usage Uzantıyı kullanma yönergeleri.
examples Ad, açıklama ve kullanım içeren kullanım örnekleri dizisi.
tags Kategorilere ayırma ve filtreleme için anahtar sözcükler.
dependencies Bu uzantının bağlı olduğu diğer uzantılar.
providers Uzantının kaydolan sağlayıcıların listesi.
platforms Platforma özgü meta veriler.
mcp Model Bağlam Protokolü sunucu yapılandırması.
requiredAzdVersion Uzantıyı kullanmak için gereken azd sürümüne ilişkin anlamsal sürüm kısıtlaması, örneğin >= 1.24.0.

Örnek bildirim

Aşağıdaki örnekte Contoso Kaynak Tagger örnek uzantısı için bir extension.yaml bildirim gösterilmektedir:

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json

id: contoso.azd.tagger
namespace: tagger
displayName: Contoso Resource Tagger
description: Standardize and report Azure resource tags for an azd project.
usage: azd tagger <command> [options]
version: 0.1.0
language: go
capabilities:
  - custom-commands

examples:
  - name: show
    description: Displays a greeting from the extension.
    usage: azd tagger show

tags:
  - tags
  - governance
  - example

Dosyanın $schema en üstündeki açıklama, YAML dil sunucusunu destekleyen düzenleyicilerde doğrulamayı ve IntelliSense'i etkinleştirir.

Özellikleri bildirme

Dizi, capabilities uzantınızın yapabileceklerini bildirir. azd, çalışma zamanında ilgili izinleri verir ve karşılık gelen yetenek bildirilmemişse bazı çerçeve hizmetleri izin hatası nedeniyle başarısız olur. Örnek uzantı yalnızca custom-commandsile başlar:

capabilities:
  - custom-commands

Diğer makalelerde işlevsellik ekledikçe, daha fazla özellik eklersiniz. Örneğin, Uzantı özellikleri ekleme özelliği ekler lifecycle-eventsve Uzantıya MCP sunucusu ekleme ekler mcp-server. Kullanılabilir özellikler şunlardır:

  • custom-commands: Ad alanınız altında, azd gibi yeni komutları azd tagger show öğesine ekleyin.
  • lifecycle-events: azd, preprovision veya postdeploy gibi olayları tetiklediğinde özel mantığı çalıştırın.
  • mcp-server: Yapay zeka aracılarının çağırabileceği Model Bağlam Protokolü araçlarını kullanıma sunma.
  • service-target-provider: host'nin varsayılan olarak desteklemediği bir azd için özel dağıtım hedefi ekleyin.
  • framework-service-provider: language’nin varsayılan olarak tanımadığı bir azd için derleme ve paketleme desteği ekleyin.
  • provisioning-provider: Altyapı sağlama biçimini azd özel bir uygulamayla değiştirin.
  • validation-provider: azd doğrulama işlem hattında çalışan denetimler ekleyin.
  • metadata: Yardım çıkışı ve IntelliSense için daha zengin komut ve yapılandırma meta verileri sağlayın.

Örnekler içeren her özelliğin daha ayrıntılı bir açıklaması için bkz. Uzantı özellikleri ekleme.

Kullanım örnekleri ekleme

Dizi, examples uzantınızı kullanmanın yaygın yollarını belgelemektedir. azd kullanıcılar uzantınızla ilgili ayrıntıları görüntülediğinde şu örnekleri ortaya çıkar:

examples:
  - name: show
    description: Displays a greeting from the extension.
    usage: azd tagger show

Sağlayıcıları kaydetme

Uzantınız özel hizmet hedefleri veya çerçeve hizmetleri sağladığında providers , uzantınızın neler sunduğunu bilmesi için azd bunları bölümünde bildirin:

providers:
  - name: tagger
    type: service-target
    description: Deploys tagged resources to Azure.

Platforma özgü yapılandırma ekleme

platforms Her işletim sisteminin yürütülebilir adı gibi platforma özgü meta veriler sağlamak için özelliğini kullanın.

platforms:
  windows:
    executable: tagger.exe
  linux:
    executable: tagger
  darwin:
    executable: tagger

Bağımlılıkları bildirme

Uzantılar dizisini dependencies kullanarak diğer uzantılara bağımlı olabilir. Bağımlılıklar anlamsal sürüm oluşturma kısıtlamalarını destekler:

dependencies:
  - id: microsoft.azd.core
    version: "^1.0.0"

azd her kısıtlamayı karşılayan ve bağımlılığın özelliğine bağlı olarak geçerli azd sürümle uyumlu olan en yüksek bağımlılık sürümüne requiredAzdVersion yükler veya yükseltir. Yalnızca uyumsuz sürümler kısıtlamayı karşılarsa, azd bir uyumluluk hatası bildirir ve sorunu çözmek için rehberlik sağlar. Yaygın kısıtlama biçimleri şunlardır:

  • ^1.0.0: 1.x.x sürümüyle uyumludur.
  • ~1.2.0: 1.2.x sürümüyle uyumludur.
  • >=1.0.0 <2.0.0: Sürüm aralığı.

Uzantı paketleriyle uzantıları gruplandırma

Uzantı paketi, kullanıcıların bunları tek bir komutla yükleyebilmesi için ilgili uzantıları gruplandıran bir bildirimdir. Bir paket, dependencies bildirdiği hâlde kendine ait bir yürütülebilir dosya, komut ad alanı veya yetenek sunmaz. Ürün ailesi veya senaryo paketi gibi bir dizi uzantıyı yayımlamak için paket kullanın:

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json

id: contoso.tools
displayName: Contoso Tools Extension Pack
description: Installs the Contoso azd extensions.
version: 0.1.0

dependencies:
  - id: contoso.azd.tagger
    version: "~0.1.0"

Bir paketi yüklemek, bağımlılıklarını yinelemeli olarak yükler. Her bağımlılık için, azd bildirilen kısıtlamayı karşılayan ve bağımlılığın requiredAzdVersion özelliğine göre geçerli azd sürümle uyumlu olan en yüksek sürümü seçer.