Anmerkung
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.
GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
In diesem Lernprogramm wird beschrieben, wie Sie das API-Verwaltungsentwicklerportal selbst hosten. Self-Hosting ist eine von mehreren Optionen, um die Funktionalität des Entwicklerportals zu erweitern . Sie können beispielsweise mehrere Portale für Ihre API-Verwaltungsinstanz mit unterschiedlichen Features selbst hosten. Wenn Sie ein Portal selbst hosten, werden Sie zum Betreuer und sind für seine Upgrades verantwortlich. Das Entwicklerportal erfordert die API-Verwaltungs-REST-API zum Verwalten der Inhalte.
Von Bedeutung
Erwägen Sie das Selbsthosting des Entwicklerportals nur, wenn Sie den Kern der Codebasis des Entwicklerportals ändern müssen. Für diese Option ist eine erweiterte Konfiguration erforderlich, einschließlich:
- Die Bereitstellung auf einer Hostingplattform wird optional von einer Lösung wie einem Content Delivery Network (CDN) begleitet, um die Verfügbarkeit und Leistung zu erhöhen.
- Pflegen und Verwalten der Hostinginfrastruktur.
- Manuelle Updates, einschließlich für Sicherheitspatches, die möglicherweise erfordern, dass Sie Codekonflikte beim Upgrade der Codebasis beheben müssen.
Hinweis
Das selbst gehostete Portal unterstützt keine Sichtbarkeit und Zugriffssteuerungen, die im verwalteten Entwicklerportal verfügbar sind.
Wenn Sie bereits Mediendateien im verwalteten Portal hochgeladen oder geändert haben, lesen Sie " Von verwalteter zu selbst gehosteter Datei wechseln", weiter unten in diesem Artikel.
Voraussetzungen
Um eine lokale Entwicklungsumgebung einzurichten, müssen Sie folgendes haben:
Eine API Management-Dienstinstanz. Wenn Sie nicht über eine verfügen, lesen Sie die Schnellstartanleitung – Erstellen einer Azure API-Verwaltungsinstanz.
Wenn Sie Ihre Instanz auf einer v2-Dienstebene erstellt haben, aktivieren Sie zuerst das Entwicklerportal.
- Wählen Sie im Randleistenmenü unter "Entwicklerportal" die Option "Portaleinstellungen" aus.
- Wählen Sie im Fenster "Portaleinstellungen" die Option "Aktiviert" aus. Wählen Sie Speichern aus. Es kann einige Minuten dauern, bis das Entwicklerportal aktiviert wird.
Ein Azure Blob Storage-Konto, mit dem Sie das Feature für statische Websites aktivieren. Siehe Erstellen eines Speicherkontos.
Git auf Ihrem Computer. Installieren Sie es, indem Sie diesem Git-Lernprogramm folgen.
Node.js (Long Term Support (LTS)-Version
v10.15.0oder höher) und NPM auf Ihrem Computer. Siehe Herunterladen und Installieren von Node.js und npm.Azure CLI. Führen Sie die Installationsschritte der Azure CLI aus.
Berechtigungen zum Erstellen einer Microsoft Entra-App-Registrierung.
Schritt 1: Einrichten einer lokalen Umgebung
Um Ihre lokale Umgebung einzurichten, klonen Sie das Repository, wechseln Sie zur neuesten Version des Entwicklerportals, und installieren Sie npm-Pakete.
Klonen Sie das Api-Management-Entwicklerportal-Repository von GitHub:
git clone https://github.com/Azure/api-management-developer-portal.gitWechseln Sie zu Ihrer lokalen Kopie des Repositorys:
cd api-management-developer-portalSchauen Sie sich die neueste Version des Portals an.
Bevor Sie den folgenden Code ausführen, überprüfen Sie das aktuelle Releasetag im Abschnitt "Releases" des Repositorys , und ersetzen
<current-release-tag>Sie den Wert durch das neueste Release-Tag.git checkout <current-release-tag>Installieren Sie alle verfügbaren npm-Pakete:
npm install
Tipp
Verwenden Sie immer das neueste Portalrelease, und halten Sie Ihr geforktes Portal auf dem neuesten Stand. Das API Management-Entwicklungsteam verwendet den master Zweig dieses Repositorys für tägliche Entwicklungszwecke. Es hat instabile Versionen der Software.
Schritt 2: Konfigurieren von JSON-Dateien, statischen Websites und CORS-Einstellungen
Datei „config.design.json“
Wechseln Sie zum src Ordner, und öffnen Sie die config.design.json Datei.
{
"environment": "development",
"subscriptionId": "< subscription ID >",
"resourceGroupName": "< resource group name >",
"serviceName": "< API Management service name >"
}
Geben Sie in subscriptionId, resourceGroupName und serviceName Werte für das Abonnement, die Ressourcengruppe und den Dienstnamen Ihrer API-Verwaltungsinstanz ein. I
Optionale Einstellungen in config.design.json
Konfigurieren Sie optional die folgenden Einstellungen in der config.design.json Datei:
Wenn Sie CAPTCHA in Ihrem Entwicklerportal aktivieren möchten, legen Sie
"useHipCaptcha": truefest. Stellen Sie sicher, dass Sie CORS-Einstellungen für das Back-End des Entwicklerportals konfigurieren.{ ... "useHipCaptcha": true ... }In
integration, untergoogleFonts, setzen Sie optionalapiKeyauf einen Google API-Schlüssel, der den Zugriff auf die Web Fonts Developer API ermöglicht. Dieser Schlüssel ist nur erforderlich, wenn Sie Google-Schriftarten im Abschnitt "Formatvorlagen" des Entwicklerportal-Editors hinzufügen möchten.{ ... "integration": { "googleFonts": { "apiKey": "< your Google API key >" } } ... }Wenn Sie noch keinen Schlüssel haben, können Sie einen Schlüssel mithilfe der Google Cloud-Konsole konfigurieren. Folgen Sie diesen Schritten:
- Öffnen Sie die Google Cloud-Konsole.
- Überprüfen Sie, ob die Webschriftarten-Entwickler-API aktiviert ist. Wenn dies nicht der Grund ist, aktivieren Sie sie.
- Wählen Sie Anmeldeinformationen erstellen>API-Schlüssel aus.
- Kopieren Sie im Dialogfeld "Öffnen" den generierten Schlüssel, und fügen Sie ihn als Wert
apiKeyin derconfig.design.jsonDatei ein. - Wählen Sie "API-Schlüssel bearbeiten" aus, um den Schlüssel-Editor zu öffnen.
- Wählen Sie im Editor unter API-Einschränkungendie Option "Schlüssel einschränken" aus. Wählen Sie in der Dropdownliste die Webschriftarten-Entwickler-API aus.
- Wählen Sie Speichern aus.
Datei „config.publish.json“
Wechseln Sie zum src Ordner, und öffnen Sie die config.publish.json Datei.
{
"environment": "publishing",
"subscriptionId":"<service subscription>",
"resourceGroupName":"<service resource group>",
"serviceName":"<service name>"
}
Kopieren und fügen Sie die Werte von subscriptionId, resourceGroupName und serviceName aus der vorherigen Konfigurationsdatei ein.
Datei „config.runtime.json“
Wechseln Sie zum src Ordner, und öffnen Sie die config.runtime.json Datei.
{
"environment": "runtime",
"backendUrl": "https://< service name >.developer.azure-api.net"
}
Ersetzen Sie < service name > durch den Namen Ihrer API-Verwaltungsinstanz, die in den vorherigen Konfigurationsdateien verwendet wurde.
Konfigurieren der statischen Website
Konfigurieren Sie das Feature "Statische Website " in Ihrem Speicherkonto, indem Sie Routen zu den Index- und Fehlerseiten bereitstellen:
Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie im Seitenmenü die Option Data management>Statische Website aus.
Wählen Sie auf der Seite "Statische Website" die Option "Aktiviert" aus.
Geben Sie im Feld "Indexdokumentname " index.htmlein.
Geben Sie im Feld "Fehlerdokumentpfad" 404/index.htmlein.
Wählen Sie Speichern aus.
Notieren Sie sich die URL des primären Endpunkts . Sie konfigurieren es später für den Zugriff auf Ihr selbst gehostetes Portal.
Konfigurieren von CORS-Einstellungen für Speicherkonto
So konfigurieren Sie die CORS-Einstellungen (Cross-Origin Resource Sharing) für das Speicherkonto:
Wechseln Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie im Randleistenmenü unter "Einstellungen" die Option "Ressourcenfreigabe ( CORS)" aus.
Konfigurieren Sie auf der Registerkarte Blob-Dienst die folgenden Regeln:
Regel Wert Zulässige Ursprünge * Zulässige Methoden Wählen Sie alle HTTP-Verben aus. Zulässige Header * Verfügbar gemachte Header * Maximales Alter 0 Wählen Sie Speichern aus.
Konfigurieren von CORS-Einstellungen für das Back-End des Entwicklerportals
Konfigurieren Sie CORS-Einstellungen für das Entwicklerportal-Back-End, um Anforderungen zuzulassen, die über Ihr selbst gehostetes Entwicklerportal stammen. Das selbst gehostete Entwicklerportal basiert auf dem Back-End-Endpunkt des Entwicklerportals (in backendUrl der Portaldatei config.runtime.json festgelegt), um mehrere Features zu aktivieren, darunter:
- CAPTCHA-Überprüfung
- OAuth 2.0-Autorisierung in der Testkonsole
- Delegierung der Benutzerauthentifizierung und des Produktabonnements
So fügen Sie CORS-Einstellungen hinzu:
- Wechseln Sie im Azure-Portal zu Ihrer API-Verwaltungsinstanz.
- Wählen Sie im Randleistenmenü dieEinstellungen des > aus.
- Fügen Sie auf der Registerkarte "Selbst gehostete Portalkonfiguration " einen oder mehrere Origin-Domänenwerte hinzu. Beispiel:
- Die Domäne, in der das selbst gehostete Portal gehostet wird, z. B.
https://contoso.developer.azure-api.net -
localhostfür die lokale Entwicklung (falls zutreffend), wiehttp://localhost:8080oderhttps://localhost:8080
- Die Domäne, in der das selbst gehostete Portal gehostet wird, z. B.
- Wählen Sie Speichern aus.
Schritt 3: Ausführen des Portals
Jetzt können Sie eine lokale Portalinstanz im Entwicklungsmodus erstellen und ausführen. Im Entwicklungsmodus werden alle Optimierungen deaktiviert, und die Quellzuordnungen sind aktiviert.
Führen Sie den folgenden Befehl aus:
npm run startSie werden aufgefordert, sich über Ihren Browser zu authentifizieren. Wählen Sie Ihre Microsoft-Anmeldeinformationen aus, um den Vorgang fortzusetzen.
Nach einiger Zeit wird der Standardbrowser automatisch mit Ihrer lokalen Entwicklerportalinstanz geöffnet. Die Standardadresse lautet
http://localhost:8080, aber der Port kann sich ändern, wenn8080sie bereits belegt ist. Wenn Sie Änderungen an der Codebasis des Projekts vornehmen, wird eine Neuerstellung ausgelöst und das Browserfenster aktualisiert.
Schritt 4: Bearbeiten des visuellen Editors
Verwenden Sie den visuellen Editor, um diese Aufgaben auszuführen:
- Anpassen Ihres Portals
- Erstellen von Inhalt
- Struktur der Website organisieren
- Gestalten der Darstellung
Siehe Lernprogramm: Zugreifen und Anpassen des Entwicklerportals. Es behandelt die Grundlagen der Administrativen Benutzeroberfläche und listet empfohlene Änderungen am Standardinhalt auf. Speichern Sie alle Änderungen in der lokalen Umgebung, und drücken Sie STRG+C , um sie zu schließen.
Schritt 5: Lokales Veröffentlichen des Portals
Führen Sie
npm run publishaus. Sie werden aufgefordert, sich über Ihren Browser zu authentifizieren. Wählen Sie Ihre Microsoft-Anmeldeinformationen aus, um den Vorgang fortzusetzen.Nach einiger Zeit wird der Inhalt im
dist/websiteOrdner veröffentlicht.
Schritt 6: Hochladen statischer Dateien in ein Blob
Verwenden Sie die Azure CLI, um die lokal generierten statischen Dateien in ein Blob hochzuladen, und stellen Sie sicher, dass Ihre Besucher darauf zugreifen können:
Öffnen Sie die Windows-Eingabeaufforderung, PowerShell oder eine andere Befehlsshell.
Führen Sie den folgenden
az storage blog upload-batchBefehl aus. Ersetzen Sie<connection-string>durch eine Verbindungszeichenfolge für Ihr Speicherkonto. Sie könnendies über den Abschnitt >" Ihres Speicherkontos abrufen.az storage blob upload-batch --source dist/website \ --account-name <your-storage-account-name> \ --destination '$web' \ --connection-string "<connection-string>"
Schritt 7: Zur Website wechseln
Ihre Website befindet sich jetzt unter dem Hostnamen, der in Ihren Azure Storage-Eigenschaften angegeben ist. Wechseln Sie im Randleistenmenü zurStatischen Website für >. Der Hostname ist der Wert des primären Endpunkts.
Hosten des Website-Editors
Wenn Sie Änderungen am Websitecode vornehmen, müssen Sie möglicherweise auch den Website-Editor-Code aktualisieren, um die Bearbeitung Ihrer geänderten Widgets ordnungsgemäß unterstützen zu können. In diesem Fall können Sie neben dem Hosten des Portals auch die Editoranwendung hosten. Dazu müssen Sie sie erstellen und konfigurieren, um auf Ihren API-Verwaltungsdienst zuzugreifen.
Dazu benötigen Sie eine Microsoft Entra-ID-Anwendung in Ihrem Mandanten:
- Registrieren Sie eine Anwendung in Ihrem Microsoft Entra ID-Mandanten. Notieren Sie sich die Anwendungs-ID (Client-ID) und die Verzeichnis-ID (Mandanten-ID). Sie konfigurieren sie in einem späteren Schritt.
- Konfigurieren Sie einen Webumleitungs-URI (Antwort-URL) in dieser Anwendung so, dass er auf den Endpunkt der Web-App verweist, in der der Designer gehostet wird. Dies ist in der Regel der Standort der Website, die auf Blob Storage basiert. Beispiel:
https://<your-storage-account-name>z13.web.core.windows.net/. - Wenn Sie das Portal in Pipelines (GitHub-Aktionen) veröffentlichen möchten, erstellen Sie auch einen geheimen Clientschlüssel für diese Anwendung. Notieren Sie sich den generierten geheimen Wert, und speichern Sie ihn an einem sicheren Ort.
Führen Sie dann die folgenden Schritte aus, um den Website-Editor zu hosten:
Fügen Sie die Felder
clientIdundtenantIdzurconfig.design.json-Datei hinzu.{ ... "clientId": "< Entra ID app ID >", "tenantId": "< Entra ID tenant ID >" ... }Führen Sie den Befehl aus, um den Designer
npm run build-designerzu erstellen.Wechseln Sie zum generierten
/dist/designerOrdner, der eine Dateiconfig.jsonmit dem folgenden Inhalt enthält:{ "subscriptionId": "< subscription ID >", "resourceGroupName": "< resource group name >", "serviceName": "< API Management service name >", "clientId": "< Entra ID client ID >", "tenantId": "< Entra ID tenant ID >" }Bestätigen Sie die Konfiguration von
subscriptionId,resourceGroupNameundserviceName, die für die Verbindung mit Ihrem API-Verwaltungsdienst über Azure Resource Manager-APIs erforderlich sind.
Veröffentlichen des Portals in Pipelines (GitHub-Aktionen)
Sie können das selbst gehostete Portal in einer Pipeline wie GitHub-Aktionen veröffentlichen.
Die Pipeline benötigt außerdem Entra-ID-Anwendungsanmeldeinformationen, um die Veröffentlichung mithilfe von Pipelines auszuführen. Sie können dieselbe Entra-ID-Anwendung verwenden, die in den vorherigen Schritten beschrieben wird. Die tenantId, clientId und insbesondere clientSecret müssen in den jeweiligen Schlüsselspeichern gespeichert werden. Weitere Details finden Sie zur Verwendung von Geheimnissen in GitHub-Aktionen.
Beispiel für die GitHub Actions-Pipeline YAML:
name: Portal-Publishing-Pipeline
on:
pull_request:
branches:
- master
jobs:
publish:
runs-on: ubuntu-latest
env:
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '20.x'
- name: Install dependencies
run: npm install
- name: Run publish command
run: npm run publish
Ändern von API-Verwaltungsbenachrichtigungsvorlagen
Ersetzen Sie die ENTWICKLERportal-URL in den API-Verwaltungsbenachrichtigungsvorlagen, sodass sie auf Ihr selbst gehostetes Portal verweist. Siehe So konfigurieren Sie Benachrichtigungen und E-Mail-Vorlagen in Azure API Management.
Führen Sie insbesondere die folgenden Änderungen an den Standardvorlagen aus:
Hinweis
Die Werte in den folgenden Aktualisierten Abschnitten gehen davon aus, dass Sie das Portal unter https://portal.contoso.com/hosten.
Bestätigung der E-Mail-Änderung
Aktualisieren Sie die URL des Entwicklerportals in der E-Mail-Änderungsbestätigungsbenachrichtigungsvorlage :
Ursprünglicher Inhalt
<a id="confirmUrl" href="$ConfirmUrl" style="text-decoration:none">
<strong>$ConfirmUrl</strong></a>
Aktualisiert
<a id="confirmUrl" href="https://portal.contoso.com/signup?$ConfirmQuery" style="text-decoration:none">
<strong>https://portal.contoso.com/signup?$ConfirmQuery</strong></a>
Bestätigung für neues Entwicklerkonto
Aktualisieren Sie die URL des Entwicklerportals in der Bestätigungsbenachrichtigungsvorlage "Neues Entwicklerkonto ":
Ursprünglicher Inhalt
<a id="confirmUrl" href="$ConfirmUrl" style="text-decoration:none">
<strong>$ConfirmUrl</strong></a>
Aktualisiert
<a id="confirmUrl" href="https://portal.contoso.com/signup?$ConfirmQuery" style="text-decoration:none">
<strong>https://portal.contoso.com/signup?$ConfirmQuery</strong></a>
Benutzer einladen
Aktualisieren Sie die URL des Entwicklerportals in der Vorlage " Benutzerbenachrichtigung einladen ":
Ursprünglicher Inhalt
<a href="$ConfirmUrl">$ConfirmUrl</a>
Aktualisiert
<a href="https://portal.contoso.com/confirm-v2/identities/basic/invite?$ConfirmQuery">https://portal.contoso.com/confirm-v2/identities/basic/invite?$ConfirmQuery</a>
Neues Abonnement aktiviert
Aktualisieren Sie die URL des Entwicklerportals in der Vorlage für aktivierte Benachrichtigungen " Neues Abonnement ":
Ursprünglicher Inhalt
Thank you for subscribing to the <a href="http://$DevPortalUrl/products/$ProdId"><strong>$ProdName</strong></a> and welcome to the $OrganizationName developer community. We are delighted to have you as part of the team and are looking forward to the amazing applications you will build using our API!
Aktualisiert
Thank you for subscribing to the <a href="https://portal.contoso.com/product#product=$ProdId"><strong>$ProdName</strong></a> and welcome to the $OrganizationName developer community. We are delighted to have you as part of the team and are looking forward to the amazing applications you will build using our API!
Ursprünglicher Inhalt
Visit the developer <a href="http://$DevPortalUrl/developer">profile area</a> to manage your subscription and subscription keys
Aktualisiert
Visit the developer <a href="https://portal.contoso.com/profile">profile area</a> to manage your subscription and subscription keys
Ursprünglicher Inhalt
<a href="http://$DevPortalUrl/docs/services?product=$ProdId">Learn about the API</a>
Aktualisiert
<a href="https://portal.contoso.com/product#product=$ProdId">Learn about the API</a>
Ursprünglicher Inhalt
<p style="font-size:12pt;font-family:'Segoe UI'">
<strong>
<a href="http://$DevPortalUrl/applications">Feature your app in the app gallery</a>
</strong>
</p>
<p style="font-size:12pt;font-family:'Segoe UI'">You can publish your application on our gallery for increased visibility to potential new users.</p>
<p style="font-size:12pt;font-family:'Segoe UI'">
<strong>
<a href="http://$DevPortalUrl/issues">Stay in touch</a>
</strong>
</p>
<p style="font-size:12pt;font-family:'Segoe UI'">
If you have an issue, a question, a suggestion, a request, or if you just want to tell us something, go to the <a href="http://$DevPortalUrl/issues">Issues</a> page on the developer portal and create a new topic.
</p>
Aktualisiert
<!--Remove the entire block of HTML code above.-->
Bestätigung der Kennwortänderung
Aktualisieren Sie die URL des Entwicklerportals in der Bestätigungsbenachrichtigungsvorlage für Kennwortänderung :
Ursprünglicher Inhalt
<a href="$DevPortalUrl">$DevPortalUrl</a>
Aktualisiert
<a href="https://portal.contoso.com/confirm-password?$ConfirmQuery">https://portal.contoso.com/confirm-password?$ConfirmQuery</a>
Alle Vorlagen
Aktualisieren Sie die URL des Entwicklerportals in jeder Vorlage, die über einen Link in der Fußzeile verfügt:
Ursprünglicher Inhalt
<a href="$DevPortalUrl">$DevPortalUrl</a>
Aktualisiert
<a href="https://portal.contoso.com/">https://portal.contoso.com/</a>
Wechseln vom verwalteten zu selbst gehosteten Entwicklerportal
Im Laufe der Zeit können sich Ihre Geschäftlichen Anforderungen ändern. Sie können in einer Situation enden, in der die verwaltete Version des API Management-Entwicklerportals Ihre Anforderungen nicht mehr erfüllt. Eine neue Anforderung kann Sie z. B. zwingen, ein benutzerdefiniertes Widget zu entwickeln, das mit einem Drittanbieterdatenanbieter integriert wird. Im Gegensatz zur verwalteten Version bietet ihnen die selbst gehostete Version des Portals volle Flexibilität und Erweiterbarkeit.
Übergangsprozess
Sie können von der verwalteten Version zu einer selbst gehosteten Version innerhalb derselben API-Verwaltungsdienstinstanz wechseln. Der Prozess behält die Änderungen bei, die Sie in der verwalteten Version des Portals durchgeführt haben. Stellen Sie sicher, dass Sie den Inhalt des Portals vorab sichern. Sie finden das Sicherungsskript im scripts.v3 Ordner des GitHub-Repositorys des API Management-Entwicklerportals.
Der Konvertierungsprozess ist fast identisch mit dem Einrichten eines generischen selbst gehosteten Portals, wie in den vorherigen Schritten in diesem Artikel gezeigt. Im Konfigurationsschritt gibt es eine Ausnahme. Das Speicherkonto in der config.design.json Datei muss mit dem Speicherkonto der verwalteten Version des Portals übereinstimmen. Siehe das Tutorial: Verwenden einer vom Linux-VM zugewiesenen Identität für den Zugriff auf Azure Storage über SAS-Zugangsdaten, um Anweisungen zum Abrufen der SAS-URL zu erhalten.
Tipp
Es wird empfohlen, ein separates Speicherkonto in der config.publish.json Datei zu verwenden. Dieser Ansatz bietet Ihnen mehr Kontrolle und vereinfacht die Verwaltung des Hostingdiensts Ihres Portals.
Verwandte Inhalte
- Erfahren Sie mehr über alternative Ansätze zum Self-Hosting