Quickstart: Een azd-voorbeeldextensie bouwen

In deze quickstart bouwt u een voorbeeld-Azure Developer CLI-extensie (azd) met de naam Contoso Resource Tagger. U gebruikt de azd ontwikkelaarsextensie om een Go-project te maken, een aangepaste opdracht toe te voegen en de extensie lokaal uit te voeren. De voorbeeldextensie die u maakt, is het startpunt voor de andere artikelen in deze sectie, waarin wordt uitgelegd hoe u mogelijkheden toevoegt, communiceert met azd, een MCP-server (Model Context Protocol) toevoegt en uw werk publiceert.

Zie De concepten voor uitbreidingsontwikkeling voordat u begint voor meer informatie over de concepten voor uitbreidingsontwikkeling.

Opmerking

Het azd extensieframework is algemeen beschikbaar. Afzonderlijke extensies of mogelijkheden hebben mogelijk hun eigen preview-status.

Prerequisites

azd bevat standaard de officiële extensiebron. U kunt ook extensies installeren van url- of bestandsbronnen, lokale ontwikkelingsregisters, opt-in-ontwikkeling of nachtregisters en draagbare .zip bundels. Zie De concepten voor uitbreidingsontwikkeling voor meer informatie.

Aanbeveling

Als een azd project afhankelijk is van door extensies geleverde hosts, providers, validatie, levenscyclushandlers of opdrachten, declareert u deze vereiste extensies met azure.yaml versiebeperkingen. Zie requiredVersionsvoor meer informatie.

De ontwikkelaarsextensie installeren

De azd ontwikkelaarsextensie (microsoft.azd.extensions) biedt de azd x opdrachten die u gebruikt om extensies te bouwen.

  1. Installeer de ontwikkelaarsextensie vanuit de officiële extensiebron:

    azd extension install microsoft.azd.extensions
    
  2. Controleer of de extensie is geïnstalleerd:

    azd extension list --installed
    

    De ontwikkelaarsextensie registreert een reeks opdrachten onder de x naamruimte. Voer deze opdracht uit azd x om de beschikbare opdrachten weer te geven.

Genereer de voorbeeldextensie

Gebruik de opdracht azd x init om een nieuw extensieproject op te zetten.

  1. Maak en wijzig deze in een map voor uw extensies:

    mkdir azd-extensions
    cd azd-extensions
    
  2. Initialiseer een Git-opslagplaats en maak een initiële doorvoering. De opdracht azd x init vereist dat de extensiemap door git wordt gevolgd:

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Voer de opdracht azd x init uit om de basisstructuur van de extensie te genereren:

    azd x init
    
  4. Geef de volgende waarden op wanneer u hierom wordt gevraagd:

    Prompt Waarde
    Extensie-ID contoso.azd.tagger
    weergavenaam Contoso Resource Tagger
    Description Standardize and report Azure resource tags for an azd project.
    Namespace tagger
    Mogelijkheden Custom commands
    Language Go

Met de opdracht wordt de basisstructuur van de extensie gegenereerd, worden de eerste binaire bestanden gebouwd, wordt de extensie verpakt, naar een lokale extensiebron gepubliceerd en lokaal geïnstalleerd voor onmiddellijk gebruik.

De projectstructuur verkennen

Met de azd x init opdracht wordt een project gegenereerd met de volgende sleutelbestanden:

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

De belangrijkste bestanden zijn:

  • extension.yaml: Definieert de metagegevens, mogelijkheden en opdrachten voor uw extensie. Zie Het extensiemanifest definiëren voor meer informatie.
  • main.go: het toegangspunt waarmee de hoofdopdracht van uw extensie wordt uitgevoerd.
  • build.shenbuild.ps1: platformoverschrijdende buildscripts die een afzonderlijk binair bestand compileren voor elk ondersteund platform (Linux, Windows en macOS).
  • CHANGELOG.md: Documenteert wijzigingen tussen versies en biedt releaseopmerkingen wanneer u publiceert.

Een aangepaste opdracht toevoegen

Voeg een show opdracht toe waarmee een begroeting wordt afgedrukt om te controleren of uw extensie werkt. De exacte bestandsindeling is afhankelijk van de starterssjabloon, maar het patroon is hetzelfde: definieer een Cobra-opdracht en registreer deze op de hoofdopdracht.

  1. Maak in de internal/cmd map een bestand met de naam show.go met de volgende inhoud:

    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. Registreer de opdracht in de hoofdopdracht. Voeg in het internal/cmd/root.go bestand de volgende regel toe aan de onderkant van het bestand na de andere AddCommand functies:

    rootCmd.AddCommand(newShowCommand())
    

De extensie uitvoeren

Voordat u de extensie uitvoert, moet u deze verpakken en publiceren naar de lokale extensiebron om uw wijzigingen te registreren.

  1. Pakket de extensie:

    azd x pack
    
  2. Publiceer de extensie om deze te registreren:

    azd x publish
    
  3. Voer de nieuwe opdracht uit:

    azd tagger show
    

    De uitvoer lijkt op het volgende voorbeeld:

    Hello from the Contoso Resource Tagger extension!
    

U hebt nu een werkende extensie waarop u kunt bouwen.

Let op wijzigingen tijdens de ontwikkeling

In plaats van na elke wijziging azd x pack en azd x publish handmatig uit te voeren, kunt u azd x watch gebruiken om de extensie tijdens de ontwikkeling automatisch te bouwen en te installeren.

  1. Start de watcher vanuit de extensiemap:

    azd x watch
    
  2. Voer in een tweede terminal de opdracht uit om wijzigingen te testen terwijl u ze aanbrengt:

    azd tagger show
    

Als u de extensie handmatig wilt bouwen in plaats van de watcher te gebruiken, voert u de opdracht uit azd x build.

De hulpbronnen opschonen

Wanneer u klaar bent met experimenteren, verwijdert u de voorbeeldextensie:

azd extension uninstall contoso.azd.tagger

Zie de volgende artikelen om verder te bouwen op de voorbeeldextensie. Elk artikel is onafhankelijk, zodat u ze in elke volgorde kunt voltooien: