Kommentar
Å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 visar hur du distribuerar och kör företagschattappexempel för Python- som är tillgänglig för privata slutpunkter.
Det här exemplet implementerar en chattapp med hjälp av Python, Azure OpenAI Service och Retrieveal Augmented Generation (RAG) i Azure AI-sökning för att få svar om medarbetarförmåner på ett fiktivt företag. Appen är seedad med PDF-filer som innehåller den anställdas handbok, ett förmånsdokument och en lista över företagsroller och förväntningar.
Genom att följa anvisningarna i den här artikeln:
- Distribuera en chattapp till Azure för offentlig åtkomst i en webbläsare.
- Omdistribuera en chattapp med privata slutpunkter.
När du har slutfört den här proceduren kan du börja ändra det nya projektet med din anpassade kod och distribuera om, med vetskapen om att chattappen endast är tillgänglig via det privata nätverket.
Översikt över arkitektur
Standarddistributionen skapar en chattapp med offentliga slutpunkter.
För chattappar som är berikade med privata data är det viktigt att skydda åtkomsten till chattappen. I den här artikeln beskrivs en lösning med hjälp av ett virtuellt nätverk.
I det virtuella nätverket finns det ett separat undernät för Azure App Service-appen jämfört med de andra Azure-tjänsterna i serverdelen. Den här strukturen gör det enkelt att tillämpa olika regler för nätverkssäkerhetsgrupper på varje undernät.
I det virtuella nätverket använder tjänsterna privata slutpunkter för att kommunicera med varandra. Varje privat slutpunkt är associerad med en privat DNS-zon (Domain Name System) för att matcha den privata slutpunktens namn till en IP-adress i det virtuella nätverket.
Distribueringssteg
Vi rekommenderar att du distribuerar lösningen två gånger. Distribuera en gång med offentlig åtkomst för att verifiera att chattappen fungerar korrekt. Distribuera igen med privat åtkomst för att skydda chattappen med hjälp av ett virtuellt nätverk.
Förutsättningar
En utvecklingscontainer miljö är tillgänglig med alla beroenden som krävs för att slutföra den här artikeln. Du kan köra utvecklingscontainern i GitHub Codespaces (i en webbläsare) eller lokalt med hjälp av Visual Studio Code.
Om du vill använda den här artikeln behöver du följande krav.
- Ett Azure-abonnemang. Skapa en kostnadsfri.
- Azure-kontobehörigheter. Ditt Azure-konto måste ha
Microsoft.Authorization/roleAssignments/writebehörigheter, till exempel administratör för användaråtkomst eller ägare. - Ett GitHub-konto.
Användningskostnad för exempelresurser
De flesta resurser som används i den här arkitekturen ligger under grundläggande eller förbrukningsbaserade prisnivåer. Det innebär att du bara betalar för det du använder, och avgifterna är vanligtvis minimala under utveckling eller testning.
Distribution med privata nätverk medför extra kostnader för distributionen. När du har utvärderat eller distribuerat appen kan du ta bort alla etablerade resurser för att undvika löpande avgifter.
En detaljerad uppdelning av förväntade kostnader finns i Avsnittet Innan du börjar på GitHub-lagringsplatsen för exemplet.
Öppna utvecklingsmiljön
Använd följande instruktioner för att distribuera en förkonfigurerad utvecklingsmiljö som innehåller alla nödvändiga beroenden för att slutföra den här artikeln.
GitHub Codespaces kör en utvecklingscontainer som hanteras av GitHub med Visual Studio Code för webben som fungerar som användargränssnitt. För den enklaste utvecklingsmiljön använder du GitHub Codespaces så att du har rätt utvecklarverktyg och beroenden förinstallerade för att slutföra den här artikeln.
Viktig
Alla GitHub-konton kan använda GitHub Codespaces i upp till 60 timmar kostnadsfritt varje månad med två kärninstanser. För mer information, se GitHub Codespaces där månatlig lagring och kärntimmar ingår.
Starta processen för att skapa ett nytt GitHub-kodområde på
main-grenen av Azure-Samples/azure-search-openai-demo GitHub-lagringsplats.Högerklicka på följande knapp och välj Öppna länk i nya fönster för att ha utvecklingsmiljön och dokumentationen tillgänglig samtidigt.
På sidan Skapa kodområde granskar du konfigurationsinställningarna för kodområdet och väljer sedan Skapa kodområde.
Vänta tills kodområdet har startat. Den här startprocessen kan ta några minuter.
Logga in på Azure med Azure Developer CLI i terminalen längst ned på skärmen:
azd auth loginKopiera koden från terminalen och klistra sedan in den i en webbläsare. Följ anvisningarna för att autentisera med ditt Azure-konto.
De återstående uppgifterna i den här artikeln sker i samband med den här utvecklingscontainern.
Anpassade inställningar
Den här lösningen konfigurerar och distribuerar infrastrukturen baserat på anpassade inställningar som konfigurerats med Azure Developer CLI. I följande tabell beskrivs de anpassade inställningarna för den här lösningen.
| Inställning | Beskrivning |
|---|---|
AZURE_PUBLIC_NETWORK_ACCESS |
Styr värdet för offentlig nätverksåtkomst på Azure-resurser som stöds. Giltiga värden är Enabled eller Disabled. |
AZURE_USE_PRIVATE_ENDPOINT |
Styr distributionen av privata slutpunkter som ansluter Azure-resurser till det virtuella nätverket. Värdet TRUE innebär att privata slutpunkter distribueras för anslutning. |
AZURE_USE_VPN_GATEWAY |
Styr distributionen av en VPN-gateway för det virtuella nätverket. Om du inte använder detta och offentlig åtkomst är inaktiverad behöver du ett annat sätt att ansluta till det virtuella nätverket. Värdet TRUE innebär att en VPN-gateway distribueras för anslutning. |
Släpp chattappen
Den första distributionen skapar resurserna och ger en offentligt tillgänglig slutpunkt.
Kör följande kommando för att konfigurera den här lösningen för offentlig åtkomst:
azd env set AZURE_PUBLIC_NETWORK_ACCESS EnabledNär du uppmanas att ange ett miljönamn bör du komma ihåg att miljönamnet används för att skapa resursgruppen. Ange ett beskrivande namn. Om du är i ett team eller i en organisation, inkludera ditt namn, som i
morgan-chat-private-endpoints. Anteckna miljönamnet. Du behöver det senare för att hitta resurserna i Azure-portalen.Kör följande kommando för att inkludera etablering av de virtuella nätverksresurserna. Kom ihåg att distributionen inte begränsar åtkomsten förrän den andra distributionen.
azd env set AZURE_USE_PRIVATE_ENDPOINT trueDistribuera lösningen med följande kommando:
azd upResurshantering är den mest tidskrävande delen av distributionsprocessen. Vänta tills distributionen är klar innan du fortsätter.
I slutet av distributionsprocessen visas appslutpunkten. Kopiera slutpunkten till en webbläsare för att öppna chattappen. Välj en av frågorna på korten och vänta sedan på svaret.
Anteckna slutpunkts-URL:en eftersom du behöver den igen senare i artikeln.
Distribuera chattappen till Azure med privat åtkomst
Ändra distributionskonfigurationen för att skydda chattappen för privat åtkomst.
Kör följande kommando för att använda en VPN-gateway för att komma åt det virtuella nätverket:
azd env set AZURE_USE_VPN_GATEWAY trueKör följande kommando för att inaktivera offentlig åtkomst:
azd env set AZURE_PUBLIC_NETWORK_ACCESS DisabledKör följande kommando för att ändra resurskonfigurationen. Det här kommandot distribuerar inte om programkoden eftersom endast infrastrukturkonfigurationen har ändrats.
azd provisionNär etableringen är klar, öppna chattappen i en webbläsare igen. Chattappen är inte längre tillgänglig eftersom den offentliga slutpunkten är inaktiverad.
Få åtkomst till chattappen
För att komma åt chattappen använder du ett verktyg som Azure VPN Gateway- eller Azure Virtual Desktop-. Kom ihåg att alla verktyg som du använder för att komma åt appen måste vara säkra och kompatibla med organisationens säkerhetsprinciper.
Rensa resurser
Följande steg beskriver hur du rensar de resurser du använde.
Att ta bort GitHub Codespaces-miljön säkerställer att du kan maximera antalet kostnadsfria timmar per kärna som du får för ditt konto.
Viktig
Mer information om ditt GitHub-kontos rättigheter finns i avsnitten om GitHub Codespaces med inkluderad lagring och kärntimmar varje månad.
Hitta dina nuvarande kodmiljöer som för närvarande körs och är hämtade från Azure-Samples/azure-search-openai-demo GitHub-repositorium.
Öppna snabbmenyn för kodområdet och välj sedan Ta bort.
Få hjälp
Den här exempellagringsplatsen erbjuder felsökningsinformation.
Om ditt problem inte åtgärdas, lägg till det på arkivets Problemsida.
Relaterat innehåll
- Se GitHub-arkivet för enterprise-chattappen.
- Skapa en chattapp med Azure OpenAI bästa praxis för lösningsarkitektur.
- Lär dig mer om åtkomstkontroll i generativa AI-appar med Azure AI-sökning.