Configuratie van API Management-service opslaan en configureren met behulp van Git

Elk API Management service-exemplaar onderhoudt een configuratiedatabase die informatie bevat over de configuratie en metagegevens voor het service-exemplaar. Wijzigingen kunnen worden aangebracht in het service-exemplaar door een instelling in de Azure Portal te wijzigen, met behulp van een PowerShell-cmdlet of door een REST API aanroepen. Naast deze methoden kunt u ook de configuratie van uw service-exemplaar beheren met behulp van Git, waardoor servicebeheerscenario's zoals:

  • Configuratieversies: download en sla verschillende versies van uw serviceconfiguratie op
  • Wijzigingen in de bulkconfiguratie: wijzigingen aanbrengen in meerdere onderdelen van uw serviceconfiguratie in uw lokale opslagplaats en de wijzigingen weer integreren op de server met één bewerking
  • Vertrouwde Git-toolchain en werkstroom: gebruik de Git-hulpprogramma's en werkstromen die u al kent

In het volgende diagram ziet u een overzicht van de verschillende manieren om uw service API Management te configureren.

Git configureren

Wanneer u wijzigingen aan uw service aan aangebracht met behulp van de Azure Portal-, PowerShell-cmdlets of de REST API, beheert u uw serviceconfiguratiedatabase met behulp van het eindpunt, zoals wordt weergegeven aan de rechterkant van het https://{name}.management.azure-api.net diagram. Aan de linkerkant van het diagram ziet u hoe u uw serviceconfiguratie kunt beheren met behulp van git- en Git-opslagplaats voor uw service op https://{name}.scm.azure-api.net .

De volgende stappen bieden een overzicht van het beheren van uw API Management service-exemplaar met behulp van Git.

  1. Toegang tot Git-configuratie in uw service
  2. Sla uw serviceconfiguratiedatabase op in uw Git-opslagplaats
  3. De Git-repo klonen op uw lokale computer
  4. Haal de meest recente repo naar uw lokale computer en push wijzigingen door en push ze terug naar uw repo
  5. De wijzigingen van uw repo implementeren in uw serviceconfiguratiedatabase

In dit artikel wordt beschreven hoe u Git kunt inschakelen en gebruiken om uw serviceconfiguratie te beheren, en vindt u een verwijzing naar de bestanden en mappen in de Git-opslagplaats.

Beschikbaarheid

Belangrijk

Deze functie is beschikbaar in de Premium-, Standard-, Basic- en Developer-lagen van API Management.

Toegang tot Git-configuratie in uw service

Als u uw Git-configuratie-instellingen wilt weergeven en configureren, klikt u op het menu Implementatie en infrastructuur en navigeert u naar het tabblad Opslagplaats.

GIT inschakelen

Belangrijk

Geheimen die niet zijn gedefinieerd als Benoemde waarden, worden opgeslagen in de opslagplaats en blijven in de geschiedenis totdat u Git-toegang uit- en weer inschakelen. Benoemde waarden bieden een veilige plaats voor het beheren van constante tekenreekswaarden, inclusief geheimen, voor alle API-configuraties en -beleidsregels, zodat u ze niet rechtstreeks in uw beleidsverklaringen hoeft op te slaan. Zie How to use Named Values in Azure API Management policies (Benoemde waarden gebruiken in Azure API Management-beleid) voor meer informatie.

Zie Git-toegang in- of uitschakelen met behulp van de REST API voor meer informatie over het in- of uitschakelen van Git-toegang met behulp van REST API.

De serviceconfiguratie opslaan in de Git-opslagplaats

De eerste stap voor het klonen van de opslagplaats bestaat uit het opslaan van de huidige status van de serviceconfiguratie in de opslagplaats. Klik op Opslaan naar opslagplaats.

Maak de gewenste wijzigingen op het bevestigingsscherm en klik op Opslaan om op te slaan.

Na enkele ogenblikken wordt de configuratie opgeslagen en wordt de configuratiestatus van de opslagplaats weergegeven, inclusief de datum en tijd van de laatste configuratiewijziging en de laatste synchronisatie tussen de serviceconfiguratie en de opslagplaats.

Zodra de configuratie is opgeslagen in de opslagplaats, kan deze worden gekloond.

Zie Commit configuration snapshot using the REST API (Momentopname van configuratie maken met behulp van de REST API)voor meer informatie over het uitvoeren van deze bewerking met behulp REST API .

De opslagplaats klonen op uw lokale computer

Als u een opslagplaats wilt klonen, hebt u de URL naar uw opslagplaats, een gebruikersnaam en een wachtwoord nodig. Klik boven aan de pagina op Toegangsreferenties om de gebruikersnaam en andere referenties op te halen.

Als u een wachtwoord wilt genereren, moet u eerst controleren of de vervaldatum is ingesteld op de gewenste vervaldatum en -tijd en klikt u vervolgens op Genereren.

Belangrijk

Noteer dit wachtwoord. Zodra u deze pagina verlaat, wordt het wachtwoord niet meer weergegeven.

In de volgende voorbeelden wordt het Git Bash-hulpprogramma van Git Windows maar u kunt elk Git-hulpprogramma gebruiken waarmee u bekend bent.

Open uw Git-hulpprogramma in de gewenste map en voer de volgende opdracht uit om de Git-opslagplaats te klonen op uw lokale computer met behulp van de opdracht van de Azure Portal.

git clone https://{name}.scm.azure-api.net/

Geef de gebruikersnaam en het wachtwoord op wanneer u hier om wordt gevraagd.

Als er fouten optreden, wijzigt u de opdracht om de gebruikersnaam en het wachtwoord op te git clone nemen, zoals wordt weergegeven in het volgende voorbeeld.

git clone https://username:password@{name}.scm.azure-api.net/

Als dit een fout veroorzaakt, probeert u URL-codering van het wachtwoordgedeelte van de opdracht. Een snelle manier om dit te doen, is door Visual Studio openen en de volgende opdracht uit te voeren in het venster Direct. Als u het venster Direct wilt openen, opent u een oplossing of project in Visual Studio (of maakt u een nieuwe lege consoletoepassing) en kiest u Windows, Direct in het menu Fouten opsporen.

?System.Net.WebUtility.UrlEncode("password from the Azure portal")

Gebruik het gecodeerde wachtwoord samen met uw gebruikersnaam en opslagplaatslocatie om de Git-opdracht te maken.

git clone https://username:url encoded password@{name}.scm.azure-api.net/

Zodra de opslagplaats is gekloond, kunt u deze weergeven en daarmee werken in uw lokale bestandssysteem. Zie Verwijzing naar bestands- en mapstructuur van lokale Git-opslagplaats voor meer informatie.

Uw lokale opslagplaats bijwerken met de meest recente configuratie van het service-exemplaar

Als u wijzigingen aan uw API Management-service-exemplaar in de Azure Portal aan te brengen of met behulp van de REST API, moet u deze wijzigingen opslaan in de opslagplaats voordat u uw lokale opslagplaats kunt bijwerken met de meest recente wijzigingen. Klik hiervoor op Opslaan naar opslagplaats op het tabblad Opslagplaats in het Azure Portal en voer vervolgens de volgende opdracht uit in uw lokale opslagplaats.

git pull

Voordat u git pull gaat uitvoeren, moet u ervoor zorgen dat u zich in de map voor uw lokale opslagplaats. Als u de opdracht zojuist hebt voltooid, moet u de map wijzigen in uw repo door een opdracht als de git clone volgende uit te voeren.

cd {name}.scm.azure-api.net/

Wijzigingen van uw lokale repo naar de server-repo pushen

Als u wijzigingen van uw lokale opslagplaats naar de serveropslagplaats wilt pushen, moet u uw wijzigingen aanbrengen en deze vervolgens naar de serveropslagplaats pushen. Als u uw wijzigingen wilt aanbrengen, opent u het Git-opdrachtprogramma, schakelt u over naar de map van uw lokale opslagplaats en geeft u de volgende opdrachten uit.

git add --all
git commit -m "Description of your changes"

Voer de volgende opdracht uit om alle commits naar de server te pushen.

git push

Wijzigingen in de serviceconfiguratie implementeren in het API Management service-exemplaar

Zodra uw lokale wijzigingen zijn doorgevoerd en naar de serveropslagplaats zijn pushen, kunt u ze implementeren in API Management service-exemplaar.

Zie Deploy Git changes to configuration database using the REST API (Git-wijzigingenimplementeren in de configuratiedatabase met behulp van de REST API) voor meer informatie over het uitvoeren van deze REST API.

Verwijzing naar bestands- en mapstructuur van lokale Git-opslagplaats

De bestanden en mappen in de lokale Git-opslagplaats bevatten de configuratie-informatie over het service-exemplaar.

Item Beschrijving
hoofdmap api-management Bevat configuratie op het hoogste niveau voor het service-exemplaar
apis-map Bevat de configuratie voor de API's in het service-exemplaar
map groups Bevat de configuratie voor de groepen in het service-exemplaar
map beleidsregels Bevat de beleidsregels in het service-exemplaar
portalStyles-map Bevat de configuratie voor de aanpassingen in de ontwikkelaarsportal in het service-exemplaar
products folder Bevat de configuratie voor de producten in het service-exemplaar
map templates Bevat de configuratie voor de e-mailsjablonen in het service-exemplaar

Elke map kan een of meer bestanden bevatten, en in sommige gevallen een of meer mappen, bijvoorbeeld een map voor elke API, elk product of elke groep. De bestanden in elke map zijn specifiek voor het entiteitstype dat wordt beschreven door de mapnaam.

Bestandstype Doel
json Configuratie-informatie over de respectieve entiteit
html Beschrijvingen van de entiteit, vaak weergegeven in de ontwikkelaarsportal
xml Beleidsinstructies
css Stijlbladen voor het aanpassen van de ontwikkelaarsportal

Deze bestanden kunnen worden gemaakt, verwijderd, bewerkt en beheerd op uw lokale bestandssysteem, en de wijzigingen die weer worden geïmplementeerd in uw API Management service-exemplaar.

Notitie

De volgende entiteiten zijn niet opgenomen in de Git-opslagplaats en kunnen niet worden geconfigureerd met behulp van Git.

Hoofdmap api-management

De api-management hoofdmap bevat een configuration.json bestand met informatie op het hoogste niveau over het service-exemplaar in de volgende indeling.

{
  "settings": {
    "RegistrationEnabled": "True",
    "UserRegistrationTerms": null,
    "UserRegistrationTermsEnabled": "False",
    "UserRegistrationTermsConsentRequired": "False",
    "DelegationEnabled": "False",
    "DelegationUrl": "",
    "DelegatedSubscriptionEnabled": "False",
    "DelegationValidationKey": "",
    "RequireUserSigninEnabled": "false"
  },
  "$ref-policy": "api-management/policies/global.xml"
}

De eerste vier instellingen ( , , , en ) worden aan de volgende instellingen op het tabblad Identiteiten in de sectie RegistrationEnabled UserRegistrationTerms UserRegistrationTermsEnabled UserRegistrationTermsConsentRequired Ontwikkelaarsportal weergegeven.

Identiteitsinstelling Kaarten aan
RegistrationEnabled Aanwezigheid van id-provider voor gebruikersnaam en wachtwoord
UserRegistrationTerms Gebruiksrechtovereenkomst in het tekstvak Gebruikers registreren
UserRegistrationTermsEnabled Het selectievakje Gebruiksvoorwaarden op de aanmeldingspagina tonen
UserRegistrationTermsConsentRequired Selectievakje Toestemming vereisen
RequireUserSigninEnabled Het selectievakje Anonieme gebruikers omleiden naar de aanmeldingspagina

De volgende vier instellingen ( , , , en ) worden aan de volgende instellingen op het tabblad Delegering in de sectie DelegationEnabled DelegationUrl DelegatedSubscriptionEnabled DelegationValidationKey Ontwikkelaarsportal weergegeven.

Delegeringsinstelling Kaarten aan
DelegationEnabled Het selectievakje Aanmelden & aanmelding delegeren
DelegationUrl Tekstvak Delegerings-eindpunt-URL
DelegatedSubscriptionEnabled Selectievakje Productabonnement delegeren
DelegationValidationKey Tekstvak Validatiesleutel delegeren

De laatste instelling, $ref-policy , wordt aan het bestand met globale beleidsverklaringen voor het service-exemplaar toegevoegd.

apis-map

De apis map bevat een map voor elke API in het service-exemplaar, die de volgende items bevat.

  • apis\<api name>\configuration.json : dit is de configuratie voor de API en bevat informatie over de URL van de back-endservice en de bewerkingen. Dit is dezelfde informatie die wordt geretourneerd als u Get a specific API with in format zou export=true application/json aanroepen.
  • apis\<api name>\api.description.html - dit is de beschrijving van de API en komt overeen met de description eigenschap van de API-entiteit.
  • apis\<api name>\operations\ : deze map bevat <operation name>.description.html bestanden die zijn toe te staan aan de bewerkingen in de API. Elk bestand bevat de beschrijving van één bewerking in de API, die wordt toe te kennen aan de eigenschap van de bewerkingsentiteit description in de REST API.

map groups

De groups map bevat een map voor elke groep die is gedefinieerd in het service-exemplaar.

  • groups\<group name>\configuration.json - dit is de configuratie voor de groep. Dit is dezelfde informatie die wordt geretourneerd als u de bewerking Een specifieke groep oproept.
  • groups\<group name>\description.html - dit is de beschrijving van de groep en komt overeen met de description eigenschap van de groepsentiteit.

map beleidsregels

De policies map bevat de beleidsverklaringen voor uw service-exemplaar.

  • policies\global.xml - bevat beleidsregels die zijn gedefinieerd op globaal niveau voor uw service-exemplaar.
  • policies\apis\<api name>\ - Als u beleidsregels hebt gedefinieerd voor HET API-bereik, zijn deze opgenomen in deze map.
  • policies\apis\<api name>\<operation name>\ map : als u beleidsregels hebt gedefinieerd op bewerkingsbereik, zijn deze opgenomen in deze map in bestanden die zijn toe te passen op de beleidsverklaringen <operation name>.xml voor elke bewerking.
  • policies\products\ - Als u beleidsregels hebt gedefinieerd op productbereik, zijn deze opgenomen in deze map, die bestanden bevat die zijn toe te kennen aan de beleidsinspraken <product name>.xml voor elk product.

portalStyles-map

De portalStyles map bevat configuratie- en stijlbladen voor aanpassingen in de ontwikkelaarsportal voor het service-exemplaar.

  • portalStyles\configuration.json - bevat de namen van de stijlbladen die worden gebruikt door de ontwikkelaarsportal
  • portalStyles\<style name>.css - elk <style name>.css bestand bevat stijlen voor de ontwikkelaarsportal ( en Preview.css Production.css standaard).

products folder

De products map bevat een map voor elk product dat is gedefinieerd in het service-exemplaar.

  • products\<product name>\configuration.json - dit is de configuratie voor het product. Dit is dezelfde informatie die wordt geretourneerd als u de bewerking Een specifiek product verkrijgen aanroept.
  • products\<product name>\product.description.html : dit is de beschrijving van het product en komt overeen met de eigenschap description van de productentiteit in de REST API.

sjablonen

De templates map bevat configuratie voor de e-mailsjablonen van het service-exemplaar.

  • <template name>\configuration.json - dit is de configuratie voor de e-mailsjabloon.
  • <template name>\body.html : dit is de body van de e-mailsjabloon.

Volgende stappen

Zie voor meer informatie over andere manieren om uw service-exemplaar te beheren: