Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie das Beispiel für die Unternehmenschat-App für Python bereitstellen und ausführen, auf das von privaten Endpunkten zugegriffen werden kann.
In diesem Beispiel wird eine Chat-App mithilfe von Python, Azure OpenAI Service und Retrieval Augmented Generation (RAG) in Azure KI-Suche implementiert, um Antworten auf Mitarbeitervorteile in einem fiktiven Unternehmen zu erhalten. Die App wird mit PDF-Dateien versehen, die das Mitarbeiterhandbuch, ein Leistungsdokument und eine Liste der Unternehmensrollen und Erwartungen enthalten.
Wenn Sie die Anweisungen in diesem Artikel befolgen,
- Stellen Sie eine Chat-App in Azure für den öffentlichen Zugriff in einem Webbrowser bereit.
- Neu-Bereitstellung einer Chat-Anwendung mit privaten Endpunkten.
Nachdem Sie dieses Verfahren abgeschlossen haben, können Sie mit dem Ändern des neuen Projekts mit Ihrem benutzerdefinierten Code und der erneuten Bereitstellung beginnen und wissen, dass Ihre Chat-App nur über das private Netzwerk zugänglich ist.
Architekturübersicht
Die Standardbereitstellung erstellt eine Chat-App mit öffentlichen Endpunkten.
Für Chat-Apps, die mit privaten Daten angereichert sind, ist die Sicherung des Zugriffs auf Ihre Chat-App von entscheidender Bedeutung. In diesem Artikel wird eine Lösung mithilfe eines virtuellen Netzwerks vorgestellt.
Innerhalb des virtuellen Netzwerks gibt es ein separates Subnetz für die Azure App Service-App im Vergleich zu den anderen Back-End-Azure-Diensten. Diese Struktur erleichtert das Anwenden unterschiedlicher Regeln für Netzwerksicherheitsgruppen auf jedes Subnetz.
Innerhalb des virtuellen Netzwerks verwenden die Dienste private Endpunkte, um miteinander zu kommunizieren. Jeder private Endpunkt ist einer privaten DNS-Zone (Domain Name System) zugeordnet, um den Namen des privaten Endpunkts in eine IP-Adresse innerhalb des virtuellen Netzwerks aufzulösen.
Implementierungsschritte
Stellen Sie die Lösung zweimal bereit. Stellen Sie einmal mit öffentlichem Zugriff bereit, um zu überprüfen, ob die Chat-App ordnungsgemäß funktioniert. Stellen Sie erneut mit privatem Zugriff bereit, um Ihre Chat-App mithilfe eines virtuellen Netzwerks zu sichern.
Voraussetzungen
Sie benötigen eine Entwicklungscontainerumgebung mit allen Abhängigkeiten, die erforderlich sind, um diesen Artikel abzuschließen. Sie können den Entwicklungscontainer in GitHub Codespaces (in einem Browser) oder lokal mit Visual Studio Code ausführen.
Um diesen Artikel zu verwenden, benötigen Sie die folgenden Voraussetzungen.
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Konto.
- Azure-Kontoberechtigungen. Ihr Azure-Konto muss über
Microsoft.Authorization/roleAssignments/write-Berechtigungen verfügen, wie z. B. Benutzerzugriff-Administrator oder Besitzer. - Ein GitHub-Konto.
Nutzungskosten für Beispielressourcen
Die meisten ressourcen, die in dieser Architektur verwendet werden, fallen unter einfache oder verbrauchsbasierte Preisniveaus. Dieses Preismodell bedeutet, dass Sie nur für ihre Nutzung bezahlen, und die Gebühren sind in der Regel während der Entwicklung oder beim Testen minimal.
Die Bereitstellung mit privatem Netzwerk verursacht zusätzliche Kosten für Ihre Bereitstellung. Wenn Sie die Auswertung oder Bereitstellung der App abgeschlossen haben, löschen Sie alle bereitgestellten Ressourcen, um laufende Gebühren zu vermeiden.
Eine detaillierte Aufschlüsselung der erwarteten Kosten finden Sie im Abschnitt "Bevor Sie beginnen" im GitHub Repository für das Beispiel.
Offene Entwicklungsumgebung
Verwenden Sie die folgenden Anweisungen, um eine vorkonfigurierte Entwicklungsumgebung bereitzustellen, die alle erforderlichen Abhängigkeiten enthält, um diesen Artikel abzuschließen.
GitHub Codespaces führt einen von GitHub verwalteten Entwicklungscontainer mit Visual Studio Code für Web als Benutzeroberfläche aus. Verwenden Sie für die einfachste Entwicklungsumgebung GitHub Codespaces, damit Sie die richtigen Entwicklertools und Abhängigkeiten vorinstalliert haben, um diesen Artikel abzuschließen.
Von Bedeutung
Alle GitHub-Konten können GitHub Codespaces für bis zu 60 Stunden kostenlos jeden Monat mit zwei Kerninstanzen verwenden. Weitere Informationen finden Sie unter monatlich inbegriffene Speicher- und Kernstunden für GitHub Codespaces.
Starten Sie den Prozess, um einen neuen GitHub-Codespace im
mainZweig des GitHub-Repositorys Azure-Samples/azure-search-openai-demo zu erstellen.Klicken Sie mit der rechten Maustaste auf die folgende Schaltfläche, und wählen Sie den Link "Öffnen" in neuen Fenstern aus, damit die Entwicklungsumgebung und die Dokumentation gleichzeitig verfügbar sind.
Überprüfen Sie auf der Seite " Codespace erstellen" die Codespace-Konfigurationseinstellungen, und wählen Sie dann " Codespace erstellen" aus.
Warten Sie, bis der Codespace gestartet wird. Dieser Startvorgang kann einige Minuten dauern.
Melden Sie sich am unteren Rand des Bildschirms mit der Azure Developer CLI bei Azure an:
azd auth loginKopieren Sie den Code vom Terminal, und fügen Sie ihn dann in einen Browser ein. Befolgen Sie die Anweisungen zum Authentifizieren mit Ihrem Azure-Konto.
Die verbleibenden Aufgaben in diesem Artikel finden im Kontext dieses Entwicklungscontainers statt.
Benutzerdefinierte Einstellungen
Diese Lösung konfiguriert und stellt die Infrastruktur basierend auf benutzerdefinierten Einstellungen bereit, die Sie mithilfe der Azure Developer CLI konfigurieren und bereitstellen. In der folgenden Tabelle werden die benutzerdefinierten Einstellungen für diese Lösung erläutert.
| Konfiguration | BESCHREIBUNG |
|---|---|
AZURE_PUBLIC_NETWORK_ACCESS |
Steuert den Wert des öffentlichen Netzwerkzugriffs auf unterstützte Azure-Ressourcen. Gültige Werte sind Enabled und Disabled. |
AZURE_USE_PRIVATE_ENDPOINT |
Steuert die Bereitstellung privater Endpunkte, die Azure-Ressourcen mit dem virtuellen Netzwerk verbinden. Der TRUE Wert bedeutet, dass private Endpunkte für die Konnektivität bereitgestellt werden. |
AZURE_USE_VPN_GATEWAY |
Steuert die Bereitstellung eines VPN-Gateways für das virtuelle Netzwerk. Wenn Sie diese Einstellung nicht verwenden und den öffentlichen Zugriff deaktivieren, benötigen Sie eine andere Möglichkeit, eine Verbindung mit dem virtuellen Netzwerk herzustellen. Der TRUE Wert bedeutet, dass ein VPN-Gateway für die Konnektivität bereitgestellt wird. |
Bereitstellen der Chat-App
Die erste Bereitstellung erstellt die Ressourcen und stellt einen öffentlich zugänglichen Endpunkt bereit.
Führen Sie den folgenden Befehl aus, um diese Lösung für den öffentlichen Zugriff zu konfigurieren:
azd env set AZURE_PUBLIC_NETWORK_ACCESS EnabledWenn Sie nach einem Umgebungsnamen gefragt werden, denken Sie daran, dass der Umgebungsname zum Erstellen der Ressourcengruppe verwendet wird. Geben Sie einen aussagekräftigen Namen ein. Wenn Sie sich in einem Team oder in einer Organisation befinden, geben Sie Ihren Namen wie in
morgan-chat-private-endpointsan. Notieren Sie sich den Umgebungsnamen. Sie benötigen es später, um die Ressourcen im Azure-Portal zu finden.Führen Sie den folgenden Befehl aus, um die Bereitstellung der virtuellen Netzwerkressourcen einzuschließen. Denken Sie daran, dass die Bereitstellung den Zugriff erst nach der zweiten Bereitstellung einschränkt.
azd env set AZURE_USE_PRIVATE_ENDPOINT trueStellen Sie die Lösung mit dem folgenden Befehl bereit:
azd upDie Bereitstellung von Ressourcen ist der zeitaufwendigste Teil des Bereitstellungsprozesses. Warten Sie, bis die Bereitstellung abgeschlossen ist, bevor Sie fortfahren.
Am Ende des Bereitstellungsprozesses wird der App-Endpunkt angezeigt. Kopieren Sie diesen Endpunkt in einen Browser, um die Chat-App zu öffnen. Wählen Sie eine der Fragen auf den Karten aus, und warten Sie dann auf die Antwort.
Notieren Sie sich die Endpunkt-URL, da Sie sie später im Artikel erneut benötigen.
Bereitstellen der Chat-App in Azure mit privatem Zugriff
Ändern Sie die Bereitstellungskonfiguration, um die Chat-App für den privaten Zugriff zu sichern.
Führen Sie den folgenden Befehl aus, um ein VPN-Gateway für den Zugriff auf das virtuelle Netzwerk zu verwenden:
azd env set AZURE_USE_VPN_GATEWAY trueFühren Sie den folgenden Befehl aus, um den öffentlichen Zugriff zu deaktivieren:
azd env set AZURE_PUBLIC_NETWORK_ACCESS DisabledFühren Sie den folgenden Befehl aus, um die Ressourcenkonfiguration zu ändern. Dieser Befehl stellt den Anwendungscode nicht erneut bereit, da nur die Infrastrukturkonfiguration geändert wurde.
azd provisionÖffnen Sie nach Abschluss der Bereitstellung die Chat-App erneut in einem Browser. Auf die Chat-App kann nicht mehr zugegriffen werden, da der öffentliche Endpunkt deaktiviert ist.
Zugreifen auf die Chat-App
Um auf die Chat-App zuzugreifen, verwenden Sie ein Tool wie Azure VPN-Gateway oder Azure Virtual Desktop. Denken Sie daran, dass alle Tools, die Sie für den Zugriff auf die App verwenden, sicher und den Sicherheitsrichtlinien Ihrer Organisation entsprechen müssen.
Bereinigen von Ressourcen
Die folgenden Schritte führen Sie durch den Vorgang zum Bereinigen der verwendeten Ressourcen.
Bereinigen von Azure-Ressourcen
Wenn Sie nicht erwarten, dass die Azure Ressourcen in Zukunft benötigt werden, löschen Sie sie, um laufende Kosten zu vermeiden.
Führen Sie den folgenden Azure Developer CLI-Befehl aus, um die Azure-Ressourcen zu löschen:
azd down --purge
Durch das Löschen der GitHub Codespaces-Umgebung wird sichergestellt, dass Sie die anzahl der kostenlosen Berechtigungen pro Kernstunden maximieren können, die Sie für Ihr Konto erhalten.
Von Bedeutung
Weitere Informationen zu den Berechtigungen Ihres GitHub-Kontos finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.
Melden Sie sich beim GitHub Codespaces-Dashboardan.
Suchen Sie Ihre derzeit ausgeführten Codespaces, die aus dem GitHub-Repository Azure-Samples/azure-search-openai-demo stammen.
Öffnen Sie das Kontextmenü für den Codespace, und wählen Sie dann Löschen aus.
Hier erhalten Sie Hilfe
Dieses Beispiel-Repository bietet Informationen zur Problembehandlung.
Wenn Ihr Problem nicht behoben ist, fügen Sie Ihr Problem zur Webseite " Probleme " des Repositorys hinzu.
Verwandte Inhalte
- Sehen Sie sich das GitHub-Repository der Unternehmenschat-App an.
- Erstellen Sie eine Chat-App mit der Azure OpenAI Best Practices-Lösungsarchitektur.
- Erfahren Sie mehr über die Zugriffssteuerung in generativen KI-Apps mit Azure KI-Suche.