Uw project compatibel maken met Azure Developer CLI

Met Azure Developer CLI (azd) kunnen ontwikkelaars hun toepassingen voor de cloud opzetten met behulp van sjablonen die worden gehost op GitHub. Microsoft biedt verschillende sjablonen om u op weg te helpen. In dit artikel leert u hoe u uw eigen toepassing azd compatibel kunt maken.

Inzicht in de sjabloonarchitectuur

In het volgende diagram ziet u een kort overzicht van het proces voor het maken van een azd sjabloon:

Diagram of Azure Developer CLI template workflow.

Alle azd sjablonen hebben dezelfde bestandsstructuur, op azd basis van conventies. In de volgende hiërarchie ziet u de mapstructuur die u in deze zelfstudie gaat bouwen.

├── .azdo                                        [ Configures an Azure Pipeline ]
├── .devcontainer                                [ For DevContainer ]
├── .github                                      [ Configures a GitHub workflow ]
├── .vscode                                      [ VS Code workspace configurations ]
├── .azure                                       [ Stores Azure configurations and environment variables ]
├── infra                                        [ Contains infrastructure as code files ]
│   ├── main.bicep/main.tf                       [ Main infrastructure file ]
│   ├── main.parameters.json/main.tfvars.json    [ Parameters file ]
│   └── core/modules                             [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

De sjabloon initialiseren

De azd init opdracht wordt gebruikt om uw toepassing te initialiseren voor het inrichten en implementeren van de app-resources in Azure. Met deze opdracht wordt u gevraagd om te kiezen tussen twee verschillende werkstromen om een sjabloon te initialiseren die in de volgende secties wordt beschreven.

  • Gebruik code in de huidige map: selecteer deze optie om azd de code in uw directory te analyseren op de identiteit van de technologieën die worden gebruikt, zoals de programmeertaal, het framework en het databasesysteem. azd genereert vervolgens automatisch sjabloonassets voor u, zoals het azure.yaml servicedefinitiebestand en de infra map met infrastructuur als codebestanden.

  • Selecteer een sjabloon: selecteer deze optie om een bestaande sjabloon als uitgangspunt te gebruiken. azd Standaard kunt u door sjablonen bladeren vanuit de Galerie Awesome AZD, maar u kunt ook uw eigen sjabloongalerieën configureren. Wanneer u een sjabloon selecteert, worden de assets van die sjabloon toegevoegd aan uw bestaande projectmap.

De details van elk van deze werkstromen worden beschreven in de onderstaande secties.

  1. U kunt de stappen vooruit volgen met uw eigen project. Als u echter liever een voorbeeldtoepassing gebruikt, kloont u de volgende startersopslagplaats naar een lege map op uw computer:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. Open het opdrachtregelprogramma van uw keuze naar de hoofdmap van het project.

  3. Voer de azd init opdracht uit om de sjabloon te initialiseren.

    azd init
    
  4. Wanneer u hierom wordt gevraagd, selecteert u de optie voor het gebruik van code in de huidige map. azd analyseert het project en biedt een overzicht van de gedetecteerde services en aanbevolen Azure-hostingbronnen.

  5. Selecteer Bevestigen en ga verder met het initialiseren van mijn app. azd genereert de volgende assets in de hoofdmap van het project:

    • Een azure.yaml bestand met de juiste servicedefinities.
    • Een infra map met infrastructuur als codebestanden voor het inrichten en implementeren van het project in Azure.
    • Een .azure map met omgevingsvariabelen die zijn ingesteld in een .env bestand.

    Verderop in het artikel vindt u meer informatie over dit detectie- en generatieproces.

  6. De gegenereerde bestanden werken als zodanig voor de opgegeven voorbeeld-app en kunnen ook voor uw eigen apps worden gebruikt. Indien nodig kunnen de gegenereerde bestanden worden aangepast aan uw behoeften. Mogelijk moet u de infrastructuur als codebestanden in de infra map verder wijzigen als uw app afhankelijk is van Azure-resources buiten de resources die zijn geïdentificeerd door azd.

  7. Voer de azd up opdracht uit om uw app in te richten en te implementeren in Azure.

    azd up
    
  8. Wanneer u hierom wordt gevraagd, selecteert u het gewenste abonnement en de gewenste locatie om het inrichtings- en implementatieproces te starten.

  9. Wanneer het proces is voltooid, klikt u op de koppeling in de azd uitvoer om de app in de browser te openen.

De initialisatiestappen verkennen

Wanneer u de code gebruiken in de huidige mapwerkstroom selecteert, analyseert de azd init opdracht uw project en wordt de code automatisch gegenereerd op basis van wat deze detecteert. In de onderstaande secties wordt uitgelegd hoe dit proces werkt en welke technologieën momenteel worden ondersteund.

Detection

Met de azd init opdracht worden projectbestanden gedetecteerd voor ondersteunde talen die zich in uw projectmap en submappen bevinden. azd scant ook pakketafhankelijkheden om informatie te verzamelen over de webframeworks of databases die uw app gebruikt. Indien nodig kunt u de gedetecteerde onderdelen handmatig toevoegen of bewerken, zoals wordt weergegeven in de bevestigingssamenvattingsprompt.

De huidige detectielogica is als volgt:

  • Ondersteunde talen:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • Ondersteunde databases:
    • MongoDB
    • PostgreSQL
  • Voor Python en JavaScript/TypeScript worden webframeworks en databases automatisch gedetecteerd.
  • Wanneer een JavaScript-/TypeScript-project een front-endwebframework (of client-side) gebruikt, wordt het geclassificeerd als een front-endservice. Als uw service gebruikmaakt van een front-endwebframework dat momenteel niet is gedetecteerd, kunt u JQuery selecteren om gelijkwaardige front-endserviceclassificatie en -gedrag te bieden.

Generatie

Nadat u de gedetecteerde onderdelen hebt bevestigd, azd init worden de infrastructuur als codebestanden gegenereerd die nodig zijn om uw toepassing in Azure te implementeren.

De generatielogica is als volgt:

  • Ondersteunde hosts:
    • Azure Container Apps.
  • Voor databases wordt de ondersteunde toewijzing tussen databasetechnologie en service gebruikt:
    • MongoDB: Azure CosmosDB-API voor MongoDB
    • PostgreSQL: Flexibele Azure Database for PostgreSQL-server
    • Redis: Azure Container Apps Redis-invoegtoepassing
  • Services die gebruikmaken van databases hebben omgevingsvariabelen die standaard verbinding bieden met de database die vooraf is geconfigureerd.
  • Wanneer zowel front-end- als back-endservices worden gedetecteerd, wordt de CORS-configuratie op de Azure-host voor back-endservices bijgewerkt om het standaardhostingdomein van front-endservices toe te staan. Dit kan zo nodig worden gewijzigd of verwijderd in de infrastructuur als codeconfiguratiebestanden.

Ondersteuning voor dev-containers toevoegen

U kunt uw sjabloon ook compatibel maken met ontwikkelcontainers en Codespaces. Met een dev-container kunt u een container gebruiken als een volledige ontwikkelomgeving. Het kan worden gebruikt om een toepassing uit te voeren, om hulpprogramma's, bibliotheken of runtimes te scheiden die nodig zijn voor het werken met een codebasis en om te helpen bij continue integratie en testen. Dev-containers kunnen lokaal of extern worden uitgevoerd in een privé- of openbare cloud. (Bron: https://containers.dev/)

Ondersteuning voor dev-containers toevoegen:

  1. Maak een .devcontainer-map in de hoofdmap van uw project.

  2. Maak een devcontainer.json bestand in de .devcontainer map met de gewenste configuraties. De azd starterssjabloon bevat een voorbeeldbestand devcontainer.json dat u naar uw project kunt kopiëren en indien nodig kunt wijzigen.

Lees meer over het werken met dev-containers in de Visual Studio Code-documentatie.

Ondersteuning toevoegen voor een CI/CD-pijplijn

U kunt ook ondersteuning voor CI/CD toevoegen in uw sjabloon met behulp van GitHub Actions of Azure DevOps met behulp van de volgende stappen:

  1. Voeg een .github map toe voor GitHub-acties of een .ado map voor Azure DevOps aan de hoofdmap van uw project.

  2. Voeg een werkstroombestand toe aan de nieuwe map. De azd starterssjabloon bevat een voorbeeldwerkstroombestand voor GitHub Actions en Azure DevOps Pipelines-voorbeeldbestanden voor elk platform dat u naar uw project kunt kopiëren en indien nodig kunt wijzigen.

  3. Mogelijk moet u ook het main.parameters.json bestand in uw infra map bijwerken met de vereiste omgevingsvariabelen om uw werkstroom uit te voeren.

De CI/CD-pijplijn configureren

Als uw sjabloon ondersteuning voor GitHub Actions of Azure Pipelines bevat, kunt u een CI/CD-pijplijn configureren met behulp van de volgende stappen:

  1. Voer de volgende opdracht uit om updates naar de opslagplaats te pushen. De GitHub Actions-werkstroom wordt geactiveerd vanwege de update.

    azd pipeline config    
    
  2. Ga in uw browser naar de GitHub-opslagplaats voor uw project.

  3. Selecteer Acties om de werkstroom uit te voeren.

Resources opschonen

Wanneer u de resources die in dit artikel zijn gemaakt niet meer nodig hebt, voert u de volgende opdracht uit:

azd down

Zie ook

Hulp vragen

Ga naar de pagina voor probleemoplossing en ondersteuning voor informatie over het indienen van een bug, hulp vragen of een nieuwe functie voorstellen voor de Azure Developer CLI.

Volgende stappen