Mulai Cepat: Membuat ekstensi contoh azd

Dalam panduan mulai cepat ini, Anda membuat ekstensi contoh Azure Developer CLI (azd) bernama Contoso Resource Tagger. Anda menggunakan azd ekstensi pengembang untuk membuat perancah proyek Go, menambahkan perintah kustom, dan menjalankan ekstensi secara lokal. Ekstensi sampel yang Anda buat adalah titik awal untuk artikel lain di bagian ini, yang menunjukkan kepada Anda cara menambahkan kemampuan, berkomunikasi dengan azd, menambahkan server Protokol Konteks Model (MCP), dan menerbitkan pekerjaan Anda.

Untuk mempelajari konsep di balik pengembangan ekstensi sebelum Memulai, lihat Konsep pengembangan ekstensi.

Nota

azd Kerangka kerja ekstensi umumnya tersedia. Ekstensi atau kemampuan individual mungkin memiliki status pratinjau mereka sendiri.

Prasyarat

azd mencakup sumber ekstensi resmi secara default. Anda juga dapat menginstal ekstensi dari sumber berbasis URL atau berbasis file, registri pengembangan lokal, pengembangan keikutsertaan atau registri malam hari, dan bundel portabel .zip . Untuk detailnya, lihat Konsep pengembangan ekstensi.

Petunjuk / Saran

azd Jika proyek bergantung pada host, penyedia, validasi, handler siklus hidup, atau perintah yang disediakan ekstensi, nyatakan ekstensi yang diperlukan tersebut dengan azure.yaml batasan versi. Untuk detailnya, lihat requiredVersions.

Menginstal ekstensi pengembang

azd Ekstensi pengembang (microsoft.azd.extensions) menyediakan perintah azd x yang Anda gunakan untuk membuat ekstensi.

  1. Instal ekstensi pengembang dari sumber ekstensi resmi:

    azd extension install microsoft.azd.extensions
    
  2. Verifikasi bahwa ekstensi telah diinstal:

    azd extension list --installed
    

    Ekstensi pengembang mendaftarkan serangkaian perintah di bawah namespace x. Jalankan azd x untuk melihat perintah yang tersedia.

Buat kerangka ekstensi contoh

azd x init Gunakan perintah untuk membuat perancah proyek ekstensi baru.

  1. Buat dan ubah menjadi direktori untuk ekstensi Anda:

    mkdir azd-extensions
    cd azd-extensions
    
  2. Inisialisasi repositori git dan buat commit awal. Perintah azd x init mengharuskan folder ekstensi dilacak oleh Git:

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Jalankan perintah azd x init untuk membuat kerangka awal ekstensi:

    azd x init
    
  4. Saat diminta, berikan nilai berikut:

    Petunjuk Nilai
    ID Ekstensi contoso.azd.tagger
    Nama tampilan Contoso Resource Tagger
    Description Standardize and report Azure resource tags for an azd project.
    Namespace tagger
    Capabilities Custom commands
    Bahasa Go

Perintah membuat perancah ekstensi, membangun biner awal, mengemas ekstensi, menerbitkannya ke sumber ekstensi lokal, dan menginstalnya secara lokal untuk segera digunakan.

Menjelajahi struktur proyek

azd x init Perintah menghasilkan proyek dengan file kunci berikut:

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

File yang paling penting adalah:

  • extension.yaml: Menentukan metadata, kemampuan, dan perintah untuk ekstensi Anda. Untuk mempelajari selengkapnya, lihat Menentukan manifes ekstensi.
  • main.go: Titik masuk yang mengeksekusi perintah utama ekstensi Anda.
  • build.shdan build.ps1: Skrip build lintas platform yang mengkompilasi biner terpisah untuk setiap platform yang didukung (Linux, Windows, dan macOS).
  • CHANGELOG.md: Mendokumentasikan perubahan antara versi dan menyediakan catatan rilis saat Anda menerbitkan.

Menambahkan perintah kustom

show Tambahkan perintah yang mencetak salam untuk memverifikasi ekstensi Anda berfungsi. Tata letak file yang tepat tergantung pada templat pemula, tetapi polanya sama: tentukan perintah Cobra dan daftarkan pada perintah root.

  1. internal/cmd Di direktori, buat file bernama show.go dengan konten berikut:

    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. Daftarkan perintah pada perintah root. Dalam file internal/cmd/root.go, tambahkan baris berikut di bagian bawah file setelah fungsi AddCommand lainnya:

    rootCmd.AddCommand(newShowCommand())
    

Jalankan ekstensi

Sebelum menjalankan ekstensi, kemas dan terbitkan ke sumber ekstensi lokal Anda untuk mendaftarkan perubahan Anda.

  1. Kemas ekstensi:

    azd x pack
    
  2. Terbitkan ekstensi untuk mendaftarkannya:

    azd x publish
    
  3. Jalankan perintah baru Anda:

    azd tagger show
    

    Hasil menyerupai contoh berikut:

    Hello from the Contoso Resource Tagger extension!
    

Anda sekarang memiliki ekstensi yang berfungsi dan dapat Anda kembangkan lebih lanjut.

Perhatikan perubahan selama pengembangan

Alih-alih menjalankan azd x pack dan azd x publish setelah setiap perubahan secara manual, gunakan azd x watch untuk membuat dan menginstal ekstensi secara otomatis saat Anda mengembangkan.

  1. Di direktori ekstensi, jalankan watcher:

    azd x watch
    
  2. Di terminal kedua, jalankan perintah Anda untuk menguji perubahan saat Anda membuatnya:

    azd tagger show
    

Untuk membangun ekstensi secara manual alih-alih menggunakan pengamat, jalankan azd x build.

Membersihkan sumber daya

Saat Anda selesai bereksperimen, hapus instalan ekstensi sampel:

azd extension uninstall contoso.azd.tagger

Untuk terus membangun ekstensi sampel, lihat artikel berikut ini. Setiap artikel bersifat independen, sehingga Anda dapat menyelesaikannya dalam urutan apa pun: