Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du interagerar med GitHub Copilot för att generera en lokal Django-webbapp som utför CRUD-åtgärder på en PostgreSQL-databas. Därefter vägleder den dig i hur du interagerar med GitHub Copilot för Azure för att distribuera webbappen och databasen till Azure App Service och Azure PostgreSQL – flexibel server (tillsammans med flera stöd för Azure-tjänster).
Det specifika program som du skapar är ett trivialt program för kontakthantering som innehåller CRUD-åtgärder med en arkitektur med listinformationsformat.
Anmärkning
Om du använder en stor språkmodell (LLM) för att generera ett program kan det ge inkonsekventa resultat. Dina resultat beror på LLM-modellen, dina instruktioner med mera. Fokus i den här guiden är att hjälpa dig att förstå hur du får bättre resultat. Men varje gång du går igenom det här exemplet får du (potentiellt) dramatiskt olika resultat.
Förutsättningar
Ett Azure-konto och åtkomst till en Azure-prenumeration. Mer information om hur du konfigurerar dem finns på prissidan för Azure-konton.
Ett GitHub-konto och en GitHub Copilot-prenumeration. Mer information om hur du konfigurerar dem finns i Skapa ett konto på GitHub respektive Snabbstart för GitHub Copilot.
Visual Studio Code. Mer information om hur du laddar ned och installerar det finns i Konfigurera Visual Studio Code.
GitHub Copilot-tillägget och GitHub Copilot Chat-tillägget. Anvisningar om hur du installerar dessa tillägg finns i Konfigurera GitHub Copilot i VS Code och Komma igång med GitHub Copilot Chat i VS Code.
Viktigt!
GitHub Copilot är en separat prenumeration som hanteras av GitHub. Frågor om GitHub Copilot-prenumerationer och support finns i Komma igång med en GitHub Copilot-plan.
Python-tillägg till Visual Studio Code. Anvisningar om hur du installerar tillägget finns i Installera Python och Python-tillägget.
PostgreSQL, inklusive pgAdmin (tillgängligt från Installationsprogrammet för PostgreSQL Windows)
Git Bash (tillgängligt från Git-installationsprogrammet för Windows)
PostgreSQL för Visual Studio Code-tillägget (förhandsversion). Anvisningar om hur du installerar och använder tillägget finns i Snabbstart: Ansluta och fråga en databas med PostgreSQL-tillägget för Visual Studio Code-förhandsversionen.
Azure CLI. Anvisningar om hur du installerar Azure CLI finns i Så här installerar du Azure CLI.
Azure Developer CLI (
azd). Anvisningar om hur du installerarazdfinns i Installera eller uppdatera Azure Developer CLI.
Förbereda chattsessionen
I Visual Studio Code använder du knappen Växla chatt i namnlisten eller väljer Ctrl+Alt+i för att öppna chattfönstret. Använd ikonen Ny chatt för att skapa en ny chattsession.
Välj
Agentläge i chattområdet. När detta skrivsClaude Sonnet 4ger det bästa resultatet. Använd den bästa tillgängliga modellen för kodgenerering.
Verifiera konfigurationen
Kontrollera att dina CLI-verktyg och Visual Studio Code är uppdaterade, korrekt konfigurerade och fungerar korrekt för att förbättra dina resultat.
I en ny chatt anger du följande fråga:
I want to create a new Django website that stores data in PostgreSQL. Then, I'll want to deploy that new website to Azure. Do I have everything installed on my local computer that you will need to perform these tasks?GitHub Copilot ber om behörighet att köra en serie kommandoradskontroller för att säkerställa att du har verktygen, samt de senaste versionerna av dessa verktyg installerade.
Uppdatera Azure CLI i terminalen med kommandot
az --upgrade.I terminalen installerar du det lösenordslösa tillägget för tjänstanslutningsappen för Azure CLI med kommandot
az extension add --name serviceconnector-passwordless --upgradeI Visual Studio Code anger du standardterminalen till Git Bash. Gå till Inställningar för filinställningar >> och skriv sedan "Standardprofil: Windows" i Sökinställningar och välj "Git Bash". Du kan behöva starta om Visual Studio Code för att den här inställningen ska börja gälla.
Anmärkning
Det är inte absolut nödvändigt att använda Git Bash, men när det här skrivs ger det bästa resultat.
I Visual Studio Code använder du tillägget PostgreSQL för Visual Studio Code (förhandsversion) och navigerar till
contactsdatabasen.I Visual Studio Code använder du Azure-tillägget och ser till att du är inloggad på ditt Azure-konto och din prenumeration. När du öppnar Azure-tillägget i det primära sidofältet bör du kunna visa dina befintliga prenumerationer och resurser.
Skapa en ny mapp för dina nya programfiler och öppna den i Visual Studio Code som arbetsyta.
Konfigurera den lokala databasen
Även om GitHub Copilot kan utföra praktiskt taget alla programutvecklingsuppgifter som utvecklare vanligtvis utför, får du bästa resultat om du utför några uppgifter i mindre steg. För att förbättra resultaten skapar du databasen och konfigurerar autentisering och auktorisering innan du arbetar med GitHub Copilot.
Skapa en ny chatt och använd följande uppmaning:
On my PostgreSQL server localhost, please create a new database named market. Then create a new user <db-username> with password `<password>` and give that user full rights (create tables and other db objects, CRUD data) to the new market database. Please do the work, and only prompt me when you are unable to do it yourself.Ersätt
<db-username>och<password>med önskat databasanvändarnamn respektive lösenord.På Windows-datorer rekommenderar vi att du lagrar databasens användarnamn och lösenord i en lokal fil:
%APPDATA%\postgresql\pgpass.confDetta löser vanligtvis följande plats på hårddisken:
c:\Users\<username>\AppSettings\Roaming\postgresql\pgpass.confErsätt
<username>med ditt Windows-användarnamn.Filen bör använda följande format:
localhost:5432:<database-name>:<database-user>:<password>Detta förutsätter att du arbetar med en instans av PostgreSQL på din lokala dator och att den finns på standardporten (5432).
Ersätt
<database-name>medcontactsoch ersätt<db-username>och<password>med de autentiseringsuppgifter som du använde i föregående steg.Mer information om filen finns i
pgpass.confPostgreSQL:s dokumentation.Lägg till sökvägen till
pgpass.conffilen i path-miljövariabeln.Testa anslutningen för att se till att den fungerar. Använd psql CLI för att testa det med följande kommando:
psql -h localhost -U <db-username> -d contactsErsätt
<db-username>med databasanvändarsegmentetpgpass.confi filen.Om inte
pgpass.confhar konfigurerats korrekt visas en uppmaning till dig att skriva in ditt lösenord.
Generera en app med GitHub Copilot
Först ger du instruktioner och vägledning om hur du skapar och testar programmet på din lokala dator.
I Visual Studio Code använder du knappen Växla chatt i namnlisten för att öppna chattfönstret. Använd ikonen Ny chatt för att skapa en ny chattsession.
Välj
Agentläge i chattområdet. När detta skrivsClaude Sonnet 4ger det bästa resultatet. Använd den bästa tillgängliga modellen för kodgenerering.Använd följande uppmaning för att starta programgenereringen:
I want you to create a simple Contact Manager application using Django and PostgreSQL. This should be a CRUD application, so create web pages that display a list of contacts, view details, add a new contact, edit or delete a contact. Each Contact is comprised of a contact's Name, Address, and Phone number. Since this is a Python / Django project please make sure to work inside of a virtual environment (venv). I've already created a PostgreSQL database at `localhost` named `contacts`. There are no tables yet. For local development in PostgreSQL, I'm using a `pgpass.conf` file and I have tested that it works. Prefer Git Bash in the terminal. Beyond that, if there's anything I need to do, please include instructions. But I want you to do as much as you can on your own.Uppmaningen har följande funktioner:
- Vilken typ av program du vill skapa. I det här fallet ett program för kontakthantering.
- De tekniker som ska användas. I det här fallet Django och PostgreSQL.
- Den webbplatsarkitektur som du vill generera. I det här fallet ett CRUD-formatprogram som innehåller en sida som visar alla kontakter och gör att du kan öka detaljnivån för en specifik kontakt.
- Mer information om problemdomänen. I det här fallet anger du de datafält som du vill att programmet ska hantera, inklusive kontaktens namn, adress och telefonnummer.
- Specifika instruktioner för databasen. I det här fallet instruerar du GitHub Copilot att använda en specifik databas som du redan har skapat, anger databasens tillstånd och hur du interagerar
- Specifika instruktioner om miljön. I det här fallet instruerar du den att använda Git Bash. Du säger också att du vill att arbetet ska utföras i en Python-miljö (venv), vilket är en bra idé. GitHub Copilot kan välja dessa alternativ på egen hand, men om du anger att det uttryckligen gör processen smidig.
- Uttryckliga förväntningar på att du vill att det ska göra så mycket arbete på egen hand som möjligt. Annars kan GitHub Copilot ge instruktioner som du kan ta.
- Explicita förväntningar på instruktioner/kontext. Om du behöver utföra andra åtgärder anger du förväntningen att du behöver det för att hjälpa dig genom att ge instruktioner och vägledning.
Viktigt!
När GitHub Copilot använder terminalen för att skapa en ny virtuell miljö identifierar
venvVisual Studio Code och visar en dialogruta som frågar om du vill använda den. Ignorera den dialogrutan. Det försvinner. Tillåt att GitHub Copilot endast använder terminalen för den här åtgärden.GitHub Copilot använder den inbyggda terminalen och Visual Studio Code-miljön för att:
- Skapa en virtuell Python-miljö
- Installera bibliotek och andra beroenden
- Generera kodfiler
- Generera databastabeller
- Generera readme-filer för ytterligare instruktioner
- Skapa testdata
- Starta en lokal webbserver
- Testa webbplatsen (med hjälp av Simple Browser eller curl)
På grund av hur LLM:er genererar kod skiljer sig kommandona som används och vad de producerar varje gång.
Distribuera till Azure med GitHub Copilot för Azure
När GitHub Copilot har genererat webbplatsen lokalt skapar du ett meddelande där du ber GitHub Copilot att göra ändringar på platsen inför distributionen och sedan utföra distributionen. GitHub Copilot för Azure-tillägget hanterar den här begäran genom att skapa Bicep-filer och sedan köra dessa filer med hjälp av azd CLI.
Använd följande uppmaning ... du kan kopiera till Notepad och ändra valfritt värde inom vinkelparenteser som <resource-group-name> och <region-name> sedan kopiera och klistra in i GitHub Copilot-chatt.
Please help me deploy this Django app to Azure.
First, create and use a Resource Group named "<resource-group-name>" in the "<region-name>" region.
Second, create an Azure App Service for the Django app in the new "<resource-group-name>" in the "<region-name>" region.
Third, create a new Azure Database for PostgreSQL flexible server named "<server-name>" in a resource group named "<resource-group-name>" in my subscription "<subscription-id>". Use my current account ("<account-id>") as the Microsoft Entra administrator. For the PostgreSQL "Administrator login", use "<azure-database-username>" and password "<azure-database-password>". Use a "development" class database configuration in the "<region-name>" region. Create a new database named "contact_manager_db" and migrate all tables and data from the local version of "contact_manager_db". The local database uses the username "<local-database-username>" and password "<local-database-password>". Add my IP address as a firewall rule, allow public access to this resource through the internet using a public IP address, and allow public access from any Azure service within Azure to this server.
Fourth, use Service Connector (and any other services you need to make this configuration work successfully) to connect the web app to the database. You may need to modify the application code to accommodate Service Connector. Also, please ensure a secure connection between the Azure App Service web site and the Azure PostgreSQL Flexible Server.
Please choose the least expensive options.
If you are prompted for an environment, use the name "contacts-env". Configure my firewall to allow my IP address. Beyond that, if there's anything
I need to do, please include instructions. But I want you to do as much as you can on your own.
Before you start:
- Do you have any questions that need to be clarified?
- Please create a plan for deployment in the form of a TODO list, and then update the TODO list as you progress. Do not start until I have a chance to review your plan and tell you to proceed.
Uppmaningen har följande funktioner:
- Specifika tjänster som du vill använda. I det här fallet anger du att du vill använda Azure App Service, Azure PostgreSQL – flexibel server, tjänstanslutningsprogram. Du ger den också instruktionen att "göra allt annat du behöver göra" för att säkerställa att det fungerar.
- Specifika tjänstalternativ. I det här fallet anger du att du vill använda det billigaste alternativet för varje tjänst.
- Tipsa om sannolika nästa steg. I det här fallet föreslår du att vissa kodändringar är nödvändiga för att kunna använda Service Connector.
- Förutse beslut i förväg. I det här fallet anger du svaret på de inställningar som behövs, till exempel ett miljönamn för
azd, - Uttryckliga förväntningar på att du vill att det ska göra lika mycket arbete på egen hand. Annars kan det ge instruktioner som du kan ta.
- Explicita förväntningar på instruktioner/kontext. Ange förväntningen att du behöver hjälp och vägledning när du uppmanas att vidta åtgärder.
- Frågar om det behövs något klargörande. Detta ger ofta potentiella problem som kantfall eller otydliga instruktioner.
- Begär en plan med en TODO-lista. Ger dig förtroende för att GitHub Copilot för Azure förstår tilldelningen och planerar att utföra den som du tänkt dig.
GitHub Copilot använder den inbyggda terminalen och Visual Studio Code-miljön för att:
- Uppdatera kodfilerna för att hantera Service Connector
- Generera Bicep-filer
-
azdKör CLI - Testa distributionen
- Om det behövs kan du felsöka distributionen med hjälp av loggar eller andra
Interagera med GitHub Copilot
GitHub Copilot kräver dina indata innan du utför många uppgifter. En paus för indata är din möjlighet att dirigera GitHub Copilot till rätt kurs för att förhindra misstag eller anpassa genererade utdata till dina inställningar.
Medan det fungerar kan du titta på och godkänna de flesta av de frågor som den ställer med hjälp av Continue knappen.
Viktigt!
Om du får oväntade resultat startar du om med en ny chattsession.
Ibland måste du ange indata. Det finns några distinkta ögonblick när du uppmanas att ange indata:
- Användarautentiseringsuppgifter – Om den aktuella åtgärden i terminalen kräver ett användarnamn eller lösenord,
- Ögonblick av beslut – Ibland ger GitHub Copilot dig flera alternativ i en lista och frågar vilken du föredrar.
- Kommandopaletten – Ibland använder GitHub Copilot funktionerna i ett tillägg och alternativen visas i kommandopaletten. När du har valt rätt fortsätter GitHub Copilot.
-
Interaktiv inloggning – Azure CLI och
azdCLI behöver du autentisera och initierar en av flera autentiseringsmekanismer.
Testa och be om ändringar
När GitHub Copilot är klar är det möjligt att den anser att webbplatsen är komplett och funktionell. Testningen kan dock identifiera problem eller oväntade/oönskade appfunktioner.
Använd prompter som beskriver problemet med så mycket information som möjligt. Om programmet till exempel inte fungerar anger du så mycket information som möjligt, inklusive det exakta felmeddelandet och det förväntade resultatet.
Avbryta flödet
Ibland kanske du märker att GitHub Copilot antingen har fastnat i en loop som försöker utföra samma uppgifter upprepade gånger eller att den fastnar i en process som aldrig returnerar. När du till exempel diagnostiserar problem med webbplatsen kanske GitHub Copilot vill köra ett kommando som:
az webapp log tail
När GitHub Copilot har fastnat kan du avbryta GitHub Copilot på något av flera sätt:
- Ctrl+c
- Använd pausknappen i chatten
- Avsluta chattsessionen och starta en ny chatt
Viktigt!
När chattsessionen avslutas förstörs all kontext som skapats under sessionen, vilket kanske eller kanske inte är önskvärt.
För att ge den kontext till vad som just hände och knuffa den mot en möjlig lösning kan du lägga till en uppmaning omedelbart efter att ha avbrutit GitHub Copilot, till exempel:
You were just getting the logs from Azure App Service but it did not return
so you got stuck. Try to interrupt after a minute once you get what you need
from the logs.