Det er muligt at opnå deployment automation for API Management på flere måder, bl.a. via Powershell og ARM Templates. Microsoft anbefaler at anvende ARM-Templates fordi de er deklarative(i modsætning til Powershell) og fordi ARM-templates er en standardisering af deployment for omkringliggende Azure Services. ARM-templates placeres i Source Control på linje med øvrig konfiguration og kode.
Når vi bygger vores deployment procedure skal vi organisere vores templates rigtigt. Microsoft anbefaler følgende struktur for API Management:
Service template: Konfiguration for service level konfiguration, e.g. pricing tiers, custom domains, scaling options.
Shared templates: Konfiguration som deles på tværs af API Management, e.g. groups, products, notification templates, m.m.
API templates: Konfiguration for de enkelte APIer, som indeholder deres ressourcer, e.g.
Master template: Binder de ovenstående templates sammen. Giver muligheden for at deploye alle konfigurationer. Og vi har stadig bevaret muligheden for at deploye templates individuelt.
Det kan virke lidt uoverskueligt, at opsætte de første templates 🙂 – Heldigvis er der et par gode værktøjer til at komme i gang.
Creator tool: Creator tool kan tage en hvilken som helst API definition, eksempelvis et eksisterende swagger API med en openAPI spec, og generere de første templates.
Extractor tool: Mange foretrækker at lave den første opsætning af APIet i Azure portalen. For en Service template og Shared templates er det tilmed meget besværligt at lade være 🙂 Med Extractor tool er det muligt at downloade en ARM-template på baggrund af en konfiguration i portalen.
Tak til Miao Jiang for en god demo og gennemgang af begge tools.
Værktøjerne kan findes i Azure API Management DevOps Resource Kit her sammen med flere detaljer om ovenstående.
Se også den Miaos key take away slide her.