Nasazení brány azure API Management v místním prostředí do Azure Container Apps
PLATÍ PRO: Vývojář | Premium
Tento článek obsahuje postup nasazení komponenty brány v místním prostředí služby Azure API Management do Azure Container Apps.
Nasaďte bránu v místním prostředí do aplikace kontejneru pro přístup k rozhraním API hostovaným ve stejném prostředí Azure Container Apps.
Požadavky
Projděte si následující rychlý start: Vytvoření instance Azure API Managementu.
Pro Azure CLI:
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Poznámka:
Příklady příkazů Azure CLI v tomto článku vyžadují
containerapp
rozšíření Azure CLI. Pokud jste nepoužiliaz containerapp
příkazy, rozšíření se při spuštění prvníhoaz containerapp
příkazu nainstaluje dynamicky. Přečtěte si další informace o rozšířeních Azure CLI.
Zřízení brány v instanci služby API Management
Před nasazením brány v místním prostředí zřiďte prostředek brány v instanci služby Azure API Management. Postup najdete v tématu Zřízení brány v místním prostředí. V příkladech v tomto článku má brána název my-gateway
.
Získání nastavení nasazení brány ze služby API Management
K nasazení brány potřebujete hodnoty tokenu a konfigurace brány. Najdete je na webu Azure Portal:
- Přihlaste se k webu Azure Portal a přejděte k vaší instanci služby API Management.
- V nabídce vlevo v části Nasazení a infrastruktura vyberte Brány.
- Vyberte prostředek brány, který jste zřídili, a vyberte Nasazení.
- Zkopírujte hodnoty koncového bodu tokenu a konfigurace.
Nasazení brány v místním prostředí do aplikace kontejneru
Image kontejneru brány v místním prostředí můžete nasadit do aplikace kontejneru pomocí webu Azure Portal, Azure CLI nebo jiných nástrojů. Tento článek ukazuje kroky pomocí Azure CLI.
Vytvoření prostředí kontejnerových aplikací
Nejprve vytvořte prostředí kontejnerových aplikací pomocí příkazu az containerapp env create :
#!/bin/bash
az containerapp env create --name my-environment --resource-group myResourceGroup \
--location centralus
Tento příkaz vytvoří:
- Prostředí kontejnerové aplikace s názvem
my-environment
, které používáte k seskupení aplikací kontejnerů. - Pracovní prostor služby Log Analytics
Vytvoření aplikace kontejneru pro bránu v místním prostředí
Pokud chcete nasadit bránu v místním prostředí do aplikace kontejneru, spusťte příkaz az containerapp create .
Nejprve nastavte proměnné pro hodnoty koncového bodu tokenu a konfigurace z prostředku brány služby API Management.
#!/bin/bash
endpoint="<API Management configuration endpoint>"
token="<API Management gateway token>"
Pomocí příkazu vytvořte aplikaci kontejneru az containerapp create
:
#!/bin/bash
az containerapp create --name my-gateway \
--resource-group myResourceGroup --environment 'my-environment' \
--image "mcr.microsoft.com/azure-api-management/gateway:2.5.0" \
--target-port 8080 --ingress external \
--min-replicas 1 --max-replicas 3 \
--env-vars "config.service.endpoint"="$endpoint" "config.service.auth"="$token" "net.server.http.forwarded.proto.enabled"="true"
Tento příkaz vytvoří:
Aplikace kontejneru
myResourceGroup
pojmenovanámy-gateway
ve skupině prostředků. V tomto příkladu se aplikace kontejneru vytvoří pomocímcr.microsoft.com/azure-api-management/gateway:2.5.0
image. Přečtěte si další informace o imagích kontejneru kontejneru brány v místním prostředí.Podpora externího příchozího přenosu dat do aplikace kontejneru na portu 8080
Minimálně 1 a maximálně 3 repliky aplikace kontejneru.
Připojení z brány v místním prostředí k instanci služby API Management pomocí hodnot konfigurace předaných v proměnných prostředí. Podrobnosti najdete v nastavení konfigurace kontejneru kontejneru brány v místním prostředí.
Poznámka:
Příchozí přenos dat Azure Container Apps předává požadavky HTTPS do aplikace kontejneru brány v místním prostředí jako HTTP. V této části je proměnná prostředí nastavená tak
true
,net.server.http.forwarded.proto.enabled
aby brána v místním prostředí používala hlavičkuX-Forwarded-Proto
k určení původního protokolu požadavku.
Ověřte, že je spuštěná aplikace kontejneru.
Přihlaste se k webu Azure Portal a přejděte do aplikace kontejneru.
Na stránce Přehled aplikace kontejneru zkontrolujte, jestli je stav spuštěný.
Odešlete testovací požadavek do koncového bodu stavu .
/status-012345678990abcdef
Použijtecurl
například příkaz podobný následujícímu.curl -i https://my-gateway.happyvalley-abcd1234.centralus.azurecontainerapps.io/status-012345678990abcdef
Úspěšný požadavek vrátí
200 OK
odpověď.
Tip
Pomocí rozhraní příkazového řádku můžete také spustit příkaz az containerapp show a zkontrolovat stav aplikace kontejneru.
Ověřte, že je brána v pořádku.
Přihlaste se k webu Azure Portal a přejděte k vaší instanci služby API Management.
V nabídce vlevo v části Nasazení a infrastruktura vyberte Brány.
Na stránce Přehled zkontrolujte stav brány. Pokud je brána v pořádku, hlásí pravidelné prezenčních signály brány.
Ukázkový scénář
Následující příklad ukazuje, jak můžete použít bránu v místním prostředí pro přístup k rozhraní API hostovaného v aplikaci kontejneru ve stejném prostředí. Jak je znázorněno v následujícím diagramu, brána v místním prostředí je přístupná z internetu, zatímco rozhraní API je přístupné jenom v prostředí kontejnerových aplikací.
- Nasazení kontejnerové aplikace hostující rozhraní API ve stejném prostředí jako brána v místním prostředí
- Přidání rozhraní API do instance služby API Management
- Volání rozhraní API prostřednictvím brány v místním prostředí
Nasazení kontejnerové aplikace hostující rozhraní API ve stejném prostředí jako brána v místním prostředí
Například do kontejnerové aplikace nasaďte ukázkové rozhraní API hudebního alba. Pokud chcete později získat přístup k rozhraní API pomocí brány v místním prostředí, nasaďte rozhraní API ve stejném prostředí jako brána v místním prostředí. Podrobné kroky a informace o prostředcích použitých v tomto příkladu najdete v tématu Rychlý start: Sestavení a nasazení z místního zdrojového kódu do Azure Container Apps. Zkrácený postup:
Stáhněte zdrojový kód Pythonu do místního počítače. Pokud chcete, stáhněte si zdrojový kód v jiném jazyce podle svého výběru.
Extrahujte zdrojový kód do místní složky a přejděte do složky containerapps-albumapi-python-main/src .
Spuštěním následujícího příkazu az containerapp up nasaďte rozhraní API do aplikace kontejneru ve stejném prostředí jako brána v místním prostředí.
.
Všimněte si na konci příkazu, který určuje aktuální složku jako zdroj aplikace kontejneru.#!/bin/bash az containerapp up --name albums-api \ --resource-group myResourceGroup --location centralus \ --environment my-environment --source .
Ověřte, že je aplikace kontejneru spuštěná a přístupná externě v plně kvalifikovaném názvu domény vráceném ve výstupu příkazu. Ve výchozím nastavení je rozhraní API přístupné na koncovém
/albums
bodu. Příklad:https://albums-api.happyvalley-abcd1234.centralus.azurecontainerapps.io/albums/albums
.
Konfigurace rozhraní API pro interní příchozí přenos dat
Teď aktualizujte aplikaci kontejneru hostující ukázkové rozhraní API tak, aby umožňovala příchozí přenos dat pouze v prostředí kontejneru. Toto nastavení omezuje přístup k rozhraní API pouze z brány v místním prostředí, kterou jste nasadili.
- Přihlaste se k webu Azure Portal a přejděte do aplikace kontejneru.
- V nabídce vlevo vyberte Příchozí přenos dat.
- Nastavte příchozí přenos dat na Povoleno.
- V příchozím přenosu dat vyberte Omezené na prostředí Container Apps Environment.
- Zkontrolujte zbývající nastavení a vyberte Uložit.
Přidání rozhraní API do instance služby API Management
Následuje příklad postupu přidání rozhraní API do instance služby API Management a konfigurace back-endu rozhraní API. Další informace najdete v tématu Přidání rozhraní API do služby Azure API Management.
Přidání rozhraní API do instance služby API Management
- Na portálu přejděte do instance služby API Management, ve které jste nakonfigurovali bránu v místním prostředí.
- V nabídce vlevo vyberte rozhraní API> + Přidat rozhraní API.
- Vyberte HTTP a vyberte Úplné. Zadejte následující nastavení:
- Zobrazovaný název: Zadejte popisný název. Příklad: Rozhraní API pro alba
- Adresa URL webové služby: Zadejte interní plně kvalifikovaný název domény aplikace kontejneru hostující rozhraní API. Příklad:
http://albums-api.internal.happyvalley-abcd1234.centralus.azurecontainerapps.io
. - Schéma adres URL: Vyberte HTTP(S).
- Přípona adresy URL rozhraní API: Zadejte příponu podle svého výběru. Příklad: albumapi.
- Brány: Vyberte bránu v místním prostředí, kterou jste zřídili. Příklad: my-gateway.
- Nakonfigurujte další nastavení rozhraní API podle vašeho scénáře. Vyberte Vytvořit.
Přidání operace rozhraní API
- V nabídce vlevo vyberte rozhraní API Albums>API.
- Vyberte + Přidat operaci.
- Zadejte nastavení operace:
- Zobrazovaný název: Zadejte popisný název operace. Příklad: Získání alb.
- Adresa URL: Vyberte Získat a zadejte
/albums
koncový bod. - Zvolte Uložit.
Volání rozhraní API prostřednictvím brány v místním prostředí
Volání rozhraní API pomocí plně kvalifikovaného názvu domény brány v místním prostředí spuštěné v aplikaci kontejneru Na stránce Přehled aplikace kontejneru najděte plně kvalifikovaný název domény na webu Azure Portal nebo spusťte následující az containerapp show
příkaz.
#!/bin/bash
az containerapp show --name my-gateway --resource-group myResourceGroup \
--query "properties.configuration.ingress.fqdn" --output tsv
Spusťte například následující curl
příkaz pro volání rozhraní API v koncovém /albumapi/albums
bodu. Pokud vaše rozhraní API vyžaduje klíč předplatného, předejte platný klíč předplatného pro vaši instanci služby API Management jako hlavičku v požadavku:
curl -i https://my-gateway.happyvalley-abcd1234.centralus.azurecontainerapps.io/albumapi/albums -H "Ocp-Apim-Subscription-Key: <subscription-key>"
Když je test úspěšný, back-end odpoví úspěšným kódem odpovědi HTTP a některými daty.
HTTP/1.1 200 OK
content-length: 751
content-type: application/json
date: Wed, 28 Feb 2024 22:45:09 GMT
[...]
[{"id":1,"title":"You, Me and an App Id","artist":"Daprize","price":10.99,"image_url":"https://aka.ms/albums-daprlogo"},{"id":2,"title":"Seven Revision Army","artist":"The Blue-Green Stripes","price":13.99,"image_url":"https://aka.ms/albums-containerappslogo"},{"id":3,"title":"Scale It Up","artist":"KEDA Club","price":13.99,"image_url":"https://aka.ms/albums-kedalogo"},{"id":4,"title":"Lost in Translation","artist":"MegaDNS","price":12.99,"image_url":"https://aka.ms/albums-envoylogo"},{"id":5,"title":"Lock Down Your Love","artist":"V is for VNET","price":12.99,"image_url":"https://aka.ms/albums-vnetlogo"},{"id":6,"title":"Sweet Container O' Mine","artist":"Guns N Probeses","price":14.99,"image_url":"https://aka.ms/albums-containerappslogo"}]
Tip
Pokud jste povolili protokolování rozhraní API do Application Insights, můžete se na protokoly dotazovat a zobrazit požadavky a odpovědi.