Så gör du för att spara och konfigurera din API Management-tjänstkonfiguration med Git
GÄLLER FÖR: Utvecklare | Grundläggande | Standard | Premium
Varje API Management tjänstinstans underhåller en konfigurationsdatabas som innehåller information om konfigurationen och metadata för tjänstinstansen. Du kan göra ändringar i tjänstinstansen genom att ändra en inställning i Azure Portal, använda Azure-verktyg som Azure PowerShell eller Azure CLI eller göra ett REST API-anrop. Förutom dessa metoder kan du hantera konfigurationen av tjänstinstansen med git, vilket möjliggör scenarier som:
- Konfigurationsversion – Ladda ned och lagra olika versioner av tjänstkonfigurationen
- Masskonfigurationsändringar – Gör ändringar i flera delar av tjänstkonfigurationen på den lokala lagringsplatsen och integrera ändringarna tillbaka till servern med en enda åtgärd
- Välbekant Git-verktygskedja och arbetsflöde – Använd Git-verktyg och arbetsflöden som du redan är bekant med
Följande diagram visar en översikt över de olika sätten att konfigurera din API Management-tjänstinstans.
När du gör ändringar i tjänsten med hjälp av Azure-portalen, Azure-verktyg som Azure PowerShell eller Azure CLI eller REST-API:et hanterar du din tjänstkonfigurationsdatabas med hjälp av https://{name}.management.azure-api.net
slutpunkten, som visas till höger i diagrammet. Till vänster i diagrammet visas hur du kan hantera tjänstkonfigurationen med git- och Git-lagringsplatsen för din tjänst som finns på https://{name}.scm.azure-api.net
.
Följande steg ger en översikt över hur du hanterar din API Management-tjänstinstans med git.
- Få åtkomst till Git-konfiguration i din tjänst
- Spara tjänstkonfigurationsdatabasen på git-lagringsplatsen
- Klona Git-lagringsplatsen till din lokala dator
- Hämta den senaste lagringsplatsen till den lokala datorn och checka in och skicka tillbaka ändringarna till lagringsplatsen
- Distribuera ändringarna från lagringsplatsen till tjänstkonfigurationsdatabasen
Den här artikeln beskriver hur du aktiverar och använder Git för att hantera tjänstkonfigurationen och tillhandahåller en referens för filerna och mapparna på Git-lagringsplatsen.
Viktigt!
Den här funktionen är utformad för att fungera med små till medelstora API Management-tjänstkonfigurationer, till exempel de med en exporterad storlek som är mindre än 10 MB eller med färre än 10 000 entiteter. Tjänster med ett stort antal entiteter (produkter, API:er, åtgärder, scheman och så vidare) kan uppleva oväntade fel vid bearbetning av Git-kommandon. Om du stöter på sådana fel kan du minska storleken på tjänstkonfigurationen och försöka igen. Kontakta Azure Support om du behöver hjälp.
Få åtkomst till Git-konfiguration i din tjänst
Gå till DIN API Management-instans i Azure-portalen.
I den vänstra menyn går du till Distribution och infrastruktur och väljer Lagringsplats.
Spara tjänstkonfigurationen på Git-lagringsplatsen
Varning
Hemligheter som inte definieras som namngivna värden lagras på lagringsplatsen och kommer att finnas kvar i dess historik. Namngivna värden ger en säker plats för att hantera konstanta strängvärden, inklusive hemligheter, för alla API-konfigurationer och principer, så att du inte behöver lagra dem direkt i dina principinstruktioner. Mer information finns i Använda namngivna värden i Azure API Management-principer.
Spara det aktuella tillståndet för tjänstkonfigurationen på lagringsplatsen innan du klonar lagringsplatsen.
På sidan Lagringsplats väljer du Spara till lagringsplats.
Gör önskade ändringar på bekräftelseskärmen, till exempel namnet på grenen för att spara konfigurationen, och välj Spara.
Efter en stund sparas konfigurationen och lagringsplatsens konfigurationsstatus visas, inklusive datum och tid för den senaste konfigurationsändringen och den senaste synkroniseringen mellan tjänstkonfigurationen och lagringsplatsen.
När konfigurationen har sparats på lagringsplatsen kan den klonas.
Information om hur du sparar tjänstkonfigurationen med hjälp av REST-API:et finns i Klientkonfiguration – Spara.
Hämta autentiseringsuppgifter för åtkomst
Om du vill klona en lagringsplats behöver du, förutom URL:en till lagringsplatsen, ett användarnamn och ett lösenord.
På sidan Lagringsplats väljer du Åtkomstautentiseringsuppgifter längst upp på sidan.
Observera användarnamnet som anges på sidan Åtkomstautentiseringsuppgifter .
Om du vill generera ett lösenord kontrollerar du först att förfallodatumet är inställt på önskat förfallodatum och tid och väljer sedan Generera.
Viktigt!
Anteckna det här lösenordet. När du lämnar den här sidan visas inte lösenordet igen.
Klona lagringsplatsen till din lokala dator
I följande exempel används Git Bash-verktyget från Git för Windows , men du kan använda valfritt Git-verktyg som du är bekant med.
Öppna Git-verktyget i önskad mapp och kör följande kommando för att klona Git-lagringsplatsen till den lokala datorn med följande kommando:
git clone https://{name}.scm.azure-api.net/
Ange användarnamnet och lösenordet när du uppmanas att göra det.
Om du får några fel kan du prova att ändra kommandot git clone
så att det innehåller användarnamnet och lösenordet, som du ser i följande exempel.
git clone https://username:password@{name}.scm.azure-api.net/
Om det här ger ett fel kan du prova att koda lösenordsdelen av kommandot. Ett snabbt sätt att göra detta är att öppna Visual Studio och utfärda följande kommando i det omedelbara fönstret. Öppna det omedelbara fönstret genom att öppna valfri lösning eller ett projekt i Visual Studio (eller skapa ett nytt tomt konsolprogram) och välja Windows, Omedelbart på felsökningsmenyn.
?System.Net.WebUtility.UrlEncode("password from the Azure portal")
Använd det kodade lösenordet tillsammans med användarnamnet och lagringsplatsen för att konstruera git-kommandot.
git clone https://username:url encoded password@{name}.scm.azure-api.net/
När kloningen är klar ändrar du katalogen till lagringsplatsen genom att köra ett kommando som följande.
cd {name}.scm.azure-api.net/
Om du har sparat konfigurationen till en annan gren än standardgrenen (master
) kan du kolla in grenen:
git checkout <branch_name>
När lagringsplatsen har klonats kan du visa och arbeta med den i det lokala filsystemet. Mer information finns i Referens för fil- och mappstruktur för den lokala Git-lagringsplatsen.
Uppdatera din lokala lagringsplats med den senaste konfigurationen av tjänstinstanser
Om du gör ändringar i din API Management-tjänstinstans i Azure-portalen eller med andra Azure-verktyg måste du spara ändringarna på lagringsplatsen innan du kan uppdatera den lokala lagringsplatsen med de senaste ändringarna.
Om du vill spara ändringar med hjälp av Azure-portalen väljer du Spara till lagringsplats på fliken Lagringsplats för din API Management-instans.
Uppdatera sedan den lokala lagringsplatsen:
Kontrollera att du är i mappen för din lokala lagringsplats. Om du precis har slutfört
git clone
kommandot måste du ändra katalogen till lagringsplatsen genom att köra ett kommando som följande.cd {name}.scm.azure-api.net/
Utfärda följande kommando i mappen för den lokala lagringsplatsen.
git pull
Skicka ändringar från din lokala lagringsplats till serverrepo
Om du vill skicka ändringar från den lokala lagringsplatsen till serverlagringsplatsen måste du checka in ändringarna och sedan skicka dem till serverlagringsplatsen. Om du vill checka in ändringarna öppnar du Git-kommandoverktyget, växlar till katalogen för den lokala lagringsplatsen och utfärdar följande kommandon.
git add --all
git commit -m "Description of your changes"
Kör följande kommando för att skicka alla incheckningar till servern.
git push
Distribuera tjänstkonfigurationsändringar till API Management-tjänstinstansen
När dina lokala ändringar har checkats in och push-överförts till serverlagringsplatsen kan du distribuera dem till din API Management-tjänstinstans.
Gå till DIN API Management-instans i Azure-portalen.
I den vänstra menyn går du till Distribution och infrastruktur och väljer Lagringsplats>Distribuera till API Management.
På konfigurationssidan Distribuera lagringsplats anger du namnet på grenen som innehåller önskade konfigurationsändringar och väljer om du vill ta bort prenumerationer på borttagna produkter. Välj Spara.
Information om hur du utför den här åtgärden med hjälp av REST-API :et finns i Klientkonfiguration – Distribuera.
Referens för fil- och mappstruktur för den lokala Git-lagringsplatsen
Filerna och mapparna på den lokala Git-lagringsplatsen innehåller konfigurationsinformation om tjänstinstansen.
Objekt | beskrivning |
---|---|
mapp för rot-API-hantering | Innehåller konfiguration på toppnivå för tjänstinstansen |
apiReleases-mapp | Innehåller konfigurationen för API-versionerna i tjänstinstansen |
apis-mapp | Innehåller konfigurationen för API:erna i tjänstinstansen |
mappen apiVersionSets | Innehåller konfigurationen för API-versionsuppsättningarna i tjänstinstansen |
backends-mapp | Innehåller konfigurationen för serverdelsresurserna i tjänstinstansen |
mapp för grupper | Innehåller konfigurationen för grupperna i tjänstinstansen |
principmapp | Innehåller principerna i tjänstinstansen |
portalStyles-mapp | Innehåller konfigurationen för anpassningar av utvecklarportalen i tjänstinstansen |
portalTemplates-mapp | Innehåller konfigurationen för mallarna för utvecklarportalen i tjänstinstansen |
produktmapp | Innehåller konfigurationen för produkterna i tjänstinstansen |
mallmapp | Innehåller konfigurationen för e-postmallarna i tjänstinstansen |
Varje mapp kan innehålla en eller flera filer och i vissa fall en eller flera mappar, till exempel en mapp för varje API, produkt eller grupp. Filerna i varje mapp är specifika för den entitetstyp som beskrivs av mappnamnet.
Filtyp | Syfte |
---|---|
json | Konfigurationsinformation om respektive entitet |
html | Beskrivningar om entiteten, som ofta visas i utvecklarportalen |
xml | Principrapporter |
Css | Formatmallar för anpassning av utvecklarportalen |
Dessa filer kan skapas, tas bort, redigeras och hanteras i ditt lokala filsystem och ändringarna distribueras tillbaka till din API Management-tjänstinstans.
Kommentar
Följande entiteter finns inte i Git-lagringsplatsen och kan inte konfigureras med Git.
- Användare
- Prenumerationer
- Namngivna värden
- Andra utvecklarportalentiteter än formatmallar och mallar
- Principfragment
Rot-API-hanteringsmapp
Rotmappen api-management
innehåller en configuration.json
fil som innehåller information på den översta nivån om tjänstinstansen i följande format.
{
"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 första fyra inställningarna (, , och ) mappas till följande inställningar på fliken Identiteter i avsnittet Utvecklarportal.UserRegistrationTermsConsentRequired
UserRegistrationTermsEnabled
UserRegistrationTerms
RegistrationEnabled
Identitetsinställning | Kartor till |
---|---|
RegistrationEnabled | Närvaro av provider för användarnamn och lösenordsidentitet |
UserRegistrationTerms | Textruta för användningsvillkor för användarregistrering |
UserRegistrationTermsEnabled | Kryssrutan Visa användningsvillkor på registreringssidan |
UserRegistrationTermsConsentRequired | Kryssrutan Kräv medgivande |
RequireUserSigninEnabled | Kryssrutan Omdirigera anonyma användare till inloggningssidan |
De följande fyra inställningarna (DelegationEnabled
, DelegationUrl
, DelegatedSubscriptionEnabled
och DelegationValidationKey
) mappas till följande inställningar på fliken Delegering i avsnittet Utvecklarportal .
Delegeringsinställning | Kartor till |
---|---|
DelegeringEnabled | Kryssrutan Delegera inloggning och registrering |
DelegeringUrl | Textrutan Delegeringsslutpunkts-URL |
DelegatedSubscriptionEnabled | Kryssrutan Delegera produktprenumeration |
DelegeringValidationKey | Textruta för delegera valideringsnyckel |
Den sista inställningen, $ref-policy
, mappar till filen med globala principinstruktioner för tjänstinstansen.
apiReleases-mapp
Mappen apiReleases
innehåller en mapp för varje API-version som distribueras till ett produktions-API och innehåller följande objekt.
apiReleases\<api release Id>\configuration.json
– Konfiguration för versionen, som innehåller information om lanseringsdatumen. Det här är samma information som skulle returneras om du anropar åtgärden Hämta en specifik version .
apis-mapp
Mappen apis
innehåller en mapp för varje API i tjänstinstansen, som innehåller följande objekt.
apis\<api name>\configuration.json
– Konfiguration för API:et, som innehåller information om serverdelstjänstens URL och åtgärderna. Det här är samma information som skulle returneras om du anropar åtgärden Hämta en specifik API .apis\<api name>\api.description.html
– Beskrivning av API:et, som motsvarar egenskapen fördescription
API-entiteten i REST-API:et.apis\<api name>\operations\
– Mapp som innehåller<operation name>.description.html
filer som mappar till åtgärderna i API:et. Varje fil innehåller beskrivningen av en enskild åtgärd i API:et, som mappar till egenskapen fördescription
åtgärdsentiteten i REST-API:et.
mappen apiVersionSets
Mappen apiVersionSets
innehåller en mapp för varje API-versionsuppsättning som skapats för ett API och innehåller följande objekt.
apiVersionSets\<api version set Id>\configuration.json
– Konfiguration för versionsuppsättningen. Det här är samma information som skulle returneras om du anropar åtgärden Hämta en specifik versionsuppsättning .
mapp för grupper
Mappen groups
innehåller en mapp för varje grupp som definierats i tjänstinstansen.
groups\<group name>\configuration.json
– Konfiguration för gruppen. Det här är samma information som returneras om du anropar åtgärden Hämta en specifik grupp .groups\<group name>\description.html
– Beskrivning av gruppen, som motsvarardescription
egenskapen för gruppentiteten.
principmapp
Mappen policies
innehåller principinstansen för din tjänstinstans.
policies\global.xml
– Principer som definierats i globalt omfång för din tjänstinstans.policies\apis\<api name>\
– Om du har principer definierade i API-omfånget finns de i den här mappen.policies\apis\<api name>\<operation name>\
mapp – Om du har principer som definierats i åtgärdsomfånget finns de i den här mappen i<operation name>.xml
filer som mappar till principinstruktionerna för varje åtgärd.policies\products\
– Om du har principer som definierats i produktomfånget finns de i den här mappen, som innehåller<product name>.xml
filer som mappar till principinstruktionerna för varje produkt.
portalStyles-mapp
Mappen portalStyles
innehåller konfigurations- och formatmallar för att anpassa den inaktuella utvecklarportalen för tjänstinstansen.
portalStyles\configuration.json
– Innehåller namnen på formatmallarna som används av utvecklarportalenportalStyles\<style name>.css
– Varje<style name>.css
fil innehåller formatmallar för utvecklarportalen (Preview.css
ochProduction.css
som standard).
portalTemplates-mapp
Mappen portalTemplates
innehåller mallar för att anpassa den inaktuella utvecklarportalen för tjänstinstansen.
portalTemplates\<template name>\configuration.json
– Konfiguration av mallen.portalTemplates\<template name>\<page name>.html
– Ursprungliga och ändrade HTML-sidor i mallen.
produktmapp
Mappen products
innehåller en mapp för varje produkt som definierats i tjänstinstansen.
products\<product name>\configuration.json
– Konfiguration för produkten. Det här är samma information som skulle returneras om du anropar åtgärden Hämta en specifik produkt .products\<product name>\product.description.html
– Beskrivning av produkten, som motsvarardescription
egenskapen för produktentiteten i REST-API:et.
templates
Mappen templates
innehåller konfiguration för e-postmallarna för tjänstinstansen.
<template name>\configuration.json
– Konfiguration för e-postmallen.<template name>\body.html
– Brödtext för e-postmallen.
Nästa steg
Information om andra sätt att hantera din tjänstinstans finns i: