Application Gateway-wijziging¶
Runbook voor operators en reviewers voor de standaardwijzigingen Workload toevoegen aan Application Gateway en Wijzigingen aan de workloadconfiguratie binnen Application Gateway. De aanvraagvelden, de volledige JSON en de effecten staan in Application Gateway. Deze pagina geeft de volgorde van bewerken, de controles en de typische problemen. De deployment staat in Application Gateway-deployment.
1. Controleer de aanvraag¶
Begin niet voordat deze velden compleet zijn:
| Veld | Opmerking |
|---|---|
| Workloadnaam | Wordt gebruikt in de namen van de pool, setting, listener, regel en probe. |
| Backendadres (IP of FQDN) | De backend moet bereikbaar zijn vanaf het gateway-subnet. |
| Listener-URL en poort (HTTP of HTTPS) | De publieke hostnaam. |
| SSL-certificaat | Verplicht voor een HTTPS-listener. Het certificaat moet al in de Key Vault van de gateway staan (zie stap 4). |
| Redirect | Ja of nee (bijvoorbeeld HTTP naar HTTPS). |
| Health probe | Standaard, of aangepast met pad, protocol en interval. |
| Aangepaste foutpagina's | Optioneel (bijvoorbeeld voor 502 en 403). |
2. Bereid de wijziging voor¶
- Maak een branch vanaf
mainin de configuratierepository, met het ticketnummer in de naam. - Open het gateway-bestand van de regio:
application_gateway_hub.jsonin de mapapplication_gateways/van de regio. Gebruik precies die naam voor de hub-gateway: de config tests controleren alleen dat bestand. - Voer dezelfde wijziging door voor elke platformomgeving die dat nodig heeft, canary eerst.
3. Bewerk in deze volgorde¶
Elke stap voegt één map in het bestand toe of wijzigt die. De namen die je in een eerdere stap geeft, zijn de verwijzingen in een latere, dus
gebruik per workload één naamgevingspatroon (bijvoorbeeld <workload>-pool, <workload>-https-settings).
| Stap | Map | Wat te doen | Controle |
|---|---|---|---|
| 1 | backend_address_pools |
Voeg de pool toe met ip_addresses en/of fqdns. |
Alleen IPv4 voor adressen. |
| 2 | probes |
Alleen voor een aangepaste probe: protocol, host, pad, interval, timeout, unhealthy threshold. | Bij een standaardprobe blijft probe_name in de HTTP-setting null. |
| 3 | backend_http_settings |
Poort, protocol, hostnaam, request timeout, probenaam. Of een vaste host_name, of pick_host_name_from_backend_address op true met host_name null. |
Een backend die via HTTPS wordt aangesproken heeft een vertrouwd certificaat nodig. |
| 4 | ssl_certificates |
Verwijs naar het certificaat via zijn Key Vault secret-URI. | Zie hieronder. |
| 5 | http_listeners |
Hostnaam, protocol, poort, certificaat. | Het protocol en de frontend_port_name komen overeen: Https met de HTTPS-poort, Http met de HTTP-poort. Een HTTPS-listener heeft ssl_certificate_name. |
| 6 | redirect_configurations |
Alleen als een redirect is aangevraagd. | |
| 7 | request_routing_rules |
Koppel listener, pool en setting (of de redirect). | Een unieke priority. Elke listener wordt door slechts één regel gebruikt. |
Het certificaat¶
Het certificaat moet vóór de deployment in de Key Vault van de gateway zijn geïmporteerd, als Certificate in PFX-formaat. De veiligste manier is dat de aanvrager het importeert: de PFX met zijn private key en wachtwoord wordt dan nooit naar het platformteam gestuurd. Verwijs de aanvrager naar de tutorial van Microsoft voor het importeren van een certificaat.
- In het bestand is het certificaat een secret-URI:
https://<key vault>.vault.azure.net/secrets/<name>. Hoe een URI met en zonder versie zich gedraagt, staat uitgelegd in Een certificaat vervangen. certificate_password_secret_idisnullals de PFX geen wachtwoord heeft. Heeft hij er een, sla het wachtwoord dan op als secret in dezelfde Key Vault en verwijs er op dezelfde manier naar.- Controleer de vervaldatum van het certificaat en zet die in de monitoring of agenda van de eigenaar.
4. Valideer, commit en open de pull request¶
- Valideer de JSON tegen het schema en draai de config tests (Bewerk de JSON-bestanden met schema-ondersteuning).
- Controleer de routeringslogica nog een keer: de verwijzingen, de prioriteiten en de listeners.
- Commit met een duidelijk bericht, push en open de pull request. Link het ticket.
- Stem af met de netwerk- en securityeigenaren van je organisatie wanneer de wijziging iets nieuws op internet publiceert.
Checklist voor de reviewer¶
Doe eerst de algemene controles. Daarna:
| Controle | Waarom |
|---|---|
| Elke verwijzing wijst naar een bestaande key: pool, setting, probe, listener, poort, certificaat, redirect | De deployment mislukt, of de gateway wordt op onverwachte wijze gewijzigd. |
| Elke HTTPS-listener heeft een certificaat, en de secret bestaat in de Key Vault van de gateway | De listener kan zonder niet starten. |
protocol en poort van de listener komen overeen |
Een mismatch breekt de listener. |
| Prioriteiten van routeringsregels zijn uniek en elke listener wordt eenmaal gebruikt | Config test. |
| Het backendadres is geldig en het pad naar de backend is open: een firewallregel vanaf het gateway-subnet en de NSG | Anders is de backend unhealthy en zien gebruikers een 502. |
| De probe past bij de backend: pad, host, protocol | Een verkeerde probe markeert een goede backend als unhealthy. |
| Er is niets anders gewijzigd: andere workloads op dezelfde gateway houden hun items | Eén bestand beschrijft de hele gateway. |
De wijziging staat in zowel canary als prod waar van toepassing |
Test eerst op canary. |
| Er is niet per ongeluk een bestaande key hernoemd | Een key hernoemen hernoemt de sub-resource. |
Do's en don'ts¶
| Doen | Niet doen |
|---|---|
| Stem af met de netwerk- en securityteams vóór de wijziging. | Vergeten een HTTPS-listener aan een certificaat te koppelen. |
| Controleer de vervaldatums van certificaten regelmatig. | Conflicten tussen routeringsregels en poolkoppelingen negeren. |
| Controleer of de probeconfiguratie klopt. | Het effect op de bestaande workloads op dezelfde gateway over het hoofd zien. |
| Houd een logboek van de wijziging bij. | Een wijziging toepassen zonder die eerst in de niet-productieomgeving te testen. |
Troubleshooting¶
| Symptoom | Oorzaak en actie |
|---|---|
| De backend is onbereikbaar | De pool heeft een verkeerd adres, of de firewall of NSG blokkeert de gateway. Meestal is een firewallregel van het gateway-subnet naar de backend nodig (Firewallregels). |
| De listener werkt niet | Hij is gekoppeld aan de verkeerde frontend IP-configuratie of poort. |
| Een certificaatfout | Het certificaat is niet goed geïnstalleerd, of het is aan de verkeerde listener gekoppeld. |
Meer oorzaken staan in Veelvoorkomende problemen.