Hızlı Başlangıç: Örnek bir azd uzantısı oluşturma

Bu hızlı başlangıçta Contoso Resource Tagger adlı bir örnek Azure Geliştirici CLI (azd) uzantısı oluşturacaksınız. Bir Go projesinin azd iskelesini oluşturmak, özel bir komut eklemek ve uzantıyı yerel olarak çalıştırmak için geliştirici uzantısını kullanırsınız. Oluşturduğunuz örnek uzantı, bu bölümdeki özellikler ekleme, ile azdiletişim kurma, Model Bağlam Protokolü (MCP) sunucusu ekleme ve çalışmanızı yayımlama adımlarını gösteren diğer makalelerin başlangıç noktasıdır.

Başlamadan önce uzantı geliştirmenin arkasındaki kavramları öğrenmek için bkz . Uzantı geliştirme kavramları.

Note

azd Uzantı çerçevesi genel olarak kullanılabilir. Tek tek uzantıların veya özelliklerin kendi önizleme durumları olabilir.

Prerequisites

azd varsayılan olarak resmi uzantı kaynağını içerir. Ayrıca URL tabanlı veya dosya tabanlı kaynaklardan, yerel geliştirme kayıt defterlerinden, geliştirmeyi kabul etme veya gecelik kayıt defterlerinden ve taşınabilir .zip paketlerden uzantılar yükleyebilirsiniz. Ayrıntılar için bkz . Uzantı geliştirme kavramları.

Tavsiye

Bir azd proje uzantı tarafından sağlanan konaklara, sağlayıcılara, doğrulamaya, yaşam döngüsü işleyicilerine veya komutlara bağımlıysa, sürüm kısıtlamalarıyla bu gerekli uzantıları içinde azure.yaml bildirin. Ayrıntılar için bkz. requiredVersions.

Geliştirici uzantısını yükleme

azd Geliştirici uzantısı (microsoft.azd.extensions), uzantı oluşturmak azd x için kullandığınız komutları sağlar.

  1. Geliştirici uzantısını resmi uzantı kaynağından yükleyin:

    azd extension install microsoft.azd.extensions
    
  2. Uzantının yüklü olduğunu doğrulayın:

    azd extension list --installed
    

    Geliştirici uzantısı, ad alanı altına x bir komut paketi kaydeder. Kullanılabilir komutları görmek için komutunu çalıştırın azd x .

Örnek uzantının iskeletini oluşturma

azd x init Yeni bir uzantı projesinin iskelesini oluşturmak için komutunu kullanın.

  1. Uzantılarınız için bir dizin oluşturun ve bu dizine geçin:

    mkdir azd-extensions
    cd azd-extensions
    
  2. Git deposunu başlatın ve ilk işlemeyi oluşturun. azd x init komutu, uzantı klasörünün git tarafından izlenmesini gerektirir:

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Uzantının iskeletini oluşturmak için azd x init komutunu çalıştırın:

    azd x init
    
  4. İstendiğinde aşağıdaki değerleri sağlayın:

    Uyarı Değer
    Uzantı Kimliği contoso.azd.tagger
    Ekran adı Contoso Resource Tagger
    Description Standardize and report Azure resource tags for an azd project.
    Namespace tagger
    Yetenekler Custom commands
    Language Go

komutu uzantının iskelesini oluşturur, ilk ikili dosyaları oluşturur, uzantıyı paketler, yerel bir uzantı kaynağında yayımlar ve anında kullanmak üzere yerel olarak yükler.

Proje yapısını keşfetme

azd x init komutu aşağıdaki anahtar dosyalarıyla bir proje oluşturur:

contoso.azd.tagger/
├── bin/                    # Contains built binaries
├── build.ps1               # Windows build script
├── build.sh                # Unix build script
├── CHANGELOG.md            # Version history and release notes
├── extension.yaml          # Extension metadata and capabilities
├── main.go                 # Entry point for the extension
├── go.mod                  # Go module definition
└── internal/               # Internal implementation code

En önemli dosyalar şunlardır:

  • extension.yaml: Uzantınız için meta verileri, özellikleri ve komutları tanımlar. Daha fazla bilgi edinmek için bkz. Uzantı bildirimini tanımlama.
  • main.go: Uzantınızın kök komutunu çalıştıran giriş noktası.
  • build.shve build.ps1: Desteklenen her platform (Linux, Windows ve macOS) için ayrı bir ikili dosya derleyen platformlar arası derleme betikleri.
  • CHANGELOG.md: Belgeler sürümler arasında değişir ve yayımladığınızda sürüm notları sağlar.

Özel komut ekleme

show Uzantınızın çalıştığını doğrulamak için selamlama yazdıran bir komut ekleyin. Tam dosya düzeni başlangıç şablonuna bağlıdır, ancak desen aynıdır: Bir Cobra komutu tanımlayın ve kök komutuna kaydedin.

  1. dizininde internal/cmd , aşağıdaki içeriğe sahip adlı show.go bir dosya oluşturun:

    package cmd
    
    import (
        "fmt"
    
        "github.com/spf13/cobra"
    )
    
    func newShowCommand() *cobra.Command {
        return &cobra.Command{
            Use:   "show",
            Short: "Displays a greeting from the Contoso Resource Tagger extension.",
            RunE: func(cmd *cobra.Command, args []string) error {
                fmt.Println("Hello from the Contoso Resource Tagger extension!")
                return nil
            },
        }
    }
    
  2. komutunu kök komutuna kaydedin. internal/cmd/root.go dosyasında, aşağıdaki satırı diğer AddCommand işlevlerden sonra dosyanın alt kısmına ekleyin:

    rootCmd.AddCommand(newShowCommand())
    

Uzantıyı çalıştırma

Uzantıyı çalıştırmadan önce paketleyip yerel uzantı kaynağınızda yayımlayarak değişikliklerinizi kaydedin.

  1. Uzantıyı paketle:

    azd x pack
    
  2. Uzantıyı kaydetmek için yayımlayın:

    azd x publish
    
  3. Yeni komutunuzu çalıştırın:

    azd tagger show
    

    Çıkış aşağıdaki örneğe benzer:

    Hello from the Contoso Resource Tagger extension!
    

Artık üzerinde oluşturabileceğiniz bir çalışma uzantısına sahipsiniz.

Geliştirme sırasındaki değişiklikleri izleyin

Her değişiklikten sonra azd x pack ve azd x publish komutlarını elle çalıştırmak yerine, geliştirme sırasında uzantıyı otomatik olarak derleyip yüklemek için azd x watch kullanın.

  1. Uzantı dizininden izleyiciyi başlatın:

    azd x watch
    
  2. İkinci bir terminalde, değişiklikleri yaparken test etmek için komutunu çalıştırın:

    azd tagger show
    

İzleyiciyi kullanmak yerine uzantıyı el ile oluşturmak için komutunu çalıştırın azd x build.

Kaynakları temizle

Denemeyi tamamladığınızda örnek uzantıyı kaldırın:

azd extension uninstall contoso.azd.tagger

Örnek uzantıyı oluşturmaya devam etmek için aşağıdaki makalelere bakın. Her makale bağımsızdır, bu nedenle bunları herhangi bir sırayla tamamlayabilirsiniz: