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.

Diagram som jämför olika sätt att konfigurera Azure API Management.

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.

  1. Få åtkomst till Git-konfiguration i din tjänst
  2. Spara tjänstkonfigurationsdatabasen på git-lagringsplatsen
  3. Klona Git-lagringsplatsen till din lokala dator
  4. Hämta den senaste lagringsplatsen till den lokala datorn och checka in och skicka tillbaka ändringarna till lagringsplatsen
  5. 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

  1. Gå till DIN API Management-instans i Azure-portalen.

  2. I den vänstra menyn går du till Distribution och infrastruktur och väljer Lagringsplats.

Skärmbild som visar hur du får åtkomst till Git-konfigurationen för API Management.

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.

  1. På sidan Lagringsplats väljer du Spara till lagringsplats.

  2. 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.

  1. På sidan Lagringsplats väljer du Åtkomstautentiseringsuppgifter längst upp på sidan.

  2. Observera användarnamnet som anges på sidan Åtkomstautentiseringsuppgifter .

  3. 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 lagringsplatsfliken Lagringsplats för din API Management-instans.

Uppdatera sedan den lokala lagringsplatsen:

  1. 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/
    
  2. 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.

  1. Gå till DIN API Management-instans i Azure-portalen.

  2. I den vänstra menyn går du till Distribution och infrastruktur och väljer Lagringsplats>Distribuera till API Management.

  3. 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.

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.UserRegistrationTermsConsentRequiredUserRegistrationTermsEnabledUserRegistrationTermsRegistrationEnabled

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, DelegatedSubscriptionEnabledoch 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ör description 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ör description å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.

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 motsvarar description 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 utvecklarportalen
  • portalStyles\<style name>.css – Varje <style name>.css fil innehåller formatmallar för utvecklarportalen (Preview.css och Production.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 motsvarar description 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: