Azure API Management saját üzemeltetésű átjáró üzembe helyezése az Azure Container Appsben
A KÖVETKEZŐKRE VONATKOZIK: Fejlesztő | Prémium
Ez a cikk az Azure API Management saját üzemeltetésű átjáróösszetevőjének üzembe helyezésének lépéseit ismerteti az Azure Container Appsben.
Helyezzen üzembe egy saját üzemeltetésű átjárót egy tárolóalkalmazásban az ugyanabban az Azure Container Apps-környezetben üzemeltetett API-k eléréséhez.
Előfeltételek
Tekintse át a következő rövid útmutatót: Azure API Management-példány létrehozása.
Azure CLI esetén:
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Feljegyzés
A cikkben szereplő Azure CLI-parancsok esetében az
containerapp
Azure CLI-bővítményre van szükség. Ha még nem használtaz containerapp
parancsokat, a bővítmény dinamikusan települ az elsőaz containerapp
parancs futtatásakor. További információ az Azure CLI-bővítményekről.
Átjáró kiépítése az API Management-példányban
A saját üzemeltetésű átjáró üzembe helyezése előtt építsen ki egy átjáróerőforrást az Azure API Management-példányban. A lépésekért tekintse meg a saját üzemeltetésű átjáró kiépítését. A cikkben szereplő példákban az átjáró neve my-gateway
.
Átjáró üzembehelyezési beállításainak lekérése az API Managementből
Az átjáró üzembe helyezéséhez szüksége van az átjáró jogkivonat- és konfigurációs végpontértékére. Ezeket az Azure Portalon találja:
- Jelentkezzen be az Azure Portalra, és keresse meg az API Management-példányt.
- A bal oldali menü Üzembe helyezés és infrastruktúra területén válassza az Átjárók lehetőséget.
- Válassza ki a kiépített átjáró-erőforrást, és válassza az Üzembe helyezés lehetőséget.
- Másolja ki a jogkivonat és a konfiguráció végpontértékét.
A saját üzemeltetésű átjáró üzembe helyezése tárolóalkalmazásban
A saját üzemeltetésű átjáró tárolórendszerképét üzembe helyezheti egy tárolóalkalmazásban az Azure Portal, az Azure CLI vagy más eszközök használatával. Ez a cikk az Azure CLI használatával végzett lépéseket mutatja be.
Tárolóalkalmazás-környezet létrehozása
Először hozzon létre egy container apps-környezetet az az containerapp env create paranccsal:
#!/bin/bash
az containerapp env create --name my-environment --resource-group myResourceGroup \
--location centralus
Ez a parancs a következőket hozza létre:
- Tárolóalkalmazások csoportosításához használt tárolóalkalmazás-környezet
my-environment
. - Log Analytics-munkaterület
Tárolóalkalmazás létrehozása a saját üzemeltetésű átjáróhoz
A saját üzemeltetésű átjáró környezetbeli tárolóalkalmazásban való üzembe helyezéséhez futtassa az az containerapp create parancsot.
Először állítson be változókat a token - és konfigurációvégpontok értékeihez az API Management-átjáró erőforrásából.
#!/bin/bash
endpoint="<API Management configuration endpoint>"
token="<API Management gateway token>"
Hozza létre a tárolóalkalmazást a az containerapp create
következő paranccsal:
#!/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"
Ez a parancs a következőket hozza létre:
Az erőforráscsoportban
myResourceGroup
elnevezettmy-gateway
tárolóalkalmazás. Ebben a példában a tárolóalkalmazás amcr.microsoft.com/azure-api-management/gateway:2.5.0
rendszerkép használatával jön létre. További információ a saját üzemeltetésű átjárótároló lemezképeiről.A tárolóalkalmazásba irányuló külső bejövő forgalom támogatása a 8080-s porton.
A tárolóalkalmazás legalább 1 és legfeljebb 3 replikája.
Kapcsolat a saját üzemeltetésű átjáró és az API Management-példány között a környezeti változókban átadott konfigurációs értékekkel. További részletekért tekintse meg a saját üzemeltetésű átjárók tárolókonfigurációs beállításait.
Feljegyzés
Az Azure Container Apps bejövő forgalom https-kéréseket továbbít a saját üzemeltetésű átjárótároló alkalmazásnak HTTP-ként. Itt a
net.server.http.forwarded.proto.enabled
környezeti változó úgy van beállítvatrue
, hogy a saját üzemeltetésű átjáró aX-Forwarded-Proto
fejléc használatával határozza meg a kérés eredeti protokollját.
Győződjön meg arról, hogy a tárolóalkalmazás fut
Jelentkezzen be az Azure Portalra, és keresse meg a tárolóalkalmazást.
A tárolóalkalmazás Áttekintés lapján ellenőrizze, hogy az állapot fut-e.
Tesztkérelem küldése a következő állapotvégpontra:
/status-012345678990abcdef
. Használjon például azcurl
alábbihoz hasonló parancsot.curl -i https://my-gateway.happyvalley-abcd1234.centralus.azurecontainerapps.io/status-012345678990abcdef
Egy sikeres kérés választ ad
200 OK
vissza.
Tipp.
A parancssori felület használatával az az containerapp show parancsot is futtathatja a tárolóalkalmazás állapotának ellenőrzéséhez.
Ellenőrizze, hogy az átjáró kifogástalan állapotban van-e
Jelentkezzen be az Azure Portalra, és keresse meg az API Management-példányt.
A bal oldali menü Üzembe helyezés és infrastruktúra területén válassza az Átjárók lehetőséget.
Az Áttekintés lapon ellenőrizze az átjáró állapotát. Ha az átjáró kifogástalan állapotú, rendszeres átjáró-szívveréseket jelent.
Példaforgatókönyv
Az alábbi példa bemutatja, hogyan férhet hozzá a saját üzemeltetésű átjáróval egy tárolóalkalmazásban üzemeltetett API-hoz ugyanabban a környezetben. Az alábbi ábrán látható módon a saját üzemeltetésű átjáró az internetről érhető el, míg az API csak a tárolóalkalmazások környezetében érhető el.
- API-t futtató tárolóalkalmazás üzembe helyezése a saját üzemeltetésű átjáróval azonos környezetben
- Az API hozzáadása az API Management-példányhoz
- Az API meghívása a saját üzemeltetésű átjárón keresztül
API-t futtató tárolóalkalmazás üzembe helyezése a saját üzemeltetésű átjáróval azonos környezetben
Helyezzen üzembe például egy példa zenealbum API-t egy tárolóalkalmazásban. Az API-hoz a saját üzemeltetésű átjáróval való későbbi hozzáféréshez helyezze üzembe az API-t ugyanabban a környezetben, mint a saját üzemeltetésű átjáró. A példában használt erőforrások részletes lépéseit és információit a következő rövid útmutatóban találja : Build and deploy from local source code to Azure Container Apps. Rövidített lépések:
Töltse le a Python-forráskódot a helyi gépre. Ha szeretné, töltse le a forráskódot egy másik tetszőleges nyelven.
Bontsa ki a forráskódot egy helyi mappába, és váltson a containerapps-albumapi-python-main/src mappára.
Futtassa az alábbi az containerapp up parancsot az API üzembe helyezéséhez a saját üzemeltetésű átjáróval azonos környezetben lévő tárolóalkalmazásban.
.
Jegyezze fel a parancs végén található parancsot, amely az aktuális mappát adja meg a tárolóalkalmazás forrásaként.#!/bin/bash az containerapp up --name albums-api \ --resource-group myResourceGroup --location centralus \ --environment my-environment --source .
Ellenőrizze, hogy a tárolóalkalmazás fut-e és elérhető-e külsőleg a parancs kimenetében visszaadott teljes tartománynéven. Alapértelmezés szerint az API elérhető a
/albums
végponton. Példa:https://albums-api.happyvalley-abcd1234.centralus.azurecontainerapps.io/albums/albums
Az API konfigurálása belső bejövő forgalomhoz
Most frissítse a minta API-t futtató tárolóalkalmazást, hogy csak a tárolókörnyezetben engedélyezze a bejövő forgalmat. Ez a beállítás csak a saját üzemeltetésű átjáróról korlátozza az API-hoz való hozzáférést.
- Jelentkezzen be az Azure Portalra, és keresse meg a tárolóalkalmazást.
- A bal oldali menüben válassza a Bejövő forgalom lehetőséget.
- A bejövő forgalom beállítása engedélyezve.
- Bejövő forgalom esetén válassza a Korlátozott tárolóalkalmazás-környezet lehetőséget.
- Tekintse át a fennmaradó beállításokat, és válassza a Mentés lehetőséget.
Az API hozzáadása az API Management-példányhoz
Az alábbiakban példalépéseket követve adhat hozzá API-t az API Management-példányhoz, és konfigurálhat egy API-háttérrendszert. További információ: API hozzáadása az Azure API Managementhez.
Az API hozzáadása az API Management-példányhoz
- A portálon keresse meg azt az API Management-példányt, ahol konfigurálta a saját üzemeltetésű átjárót.
- A bal oldali menüben válassza az API-k>+ API hozzáadása lehetőséget.
- Válassza a HTTP lehetőséget , és válassza a Teljes lehetőséget. Adja meg a következő beállításokat:
- Megjelenítendő név: Adjon meg egy leíró nevet. Példa: Albumok API.
- Webszolgáltatás URL-címe: Adja meg az API-t üzemeltető tárolóalkalmazás belső teljes tartománynevét. Példa:
http://albums-api.internal.happyvalley-abcd1234.centralus.azurecontainerapps.io
- URL-séma: Válassza a HTTP(S) lehetőséget.
- API URL-utótag: Adjon meg egy tetszőleges utótagot. Példa: albumapi.
- Átjárók: Válassza ki a kiépített saját üzemeltetésű átjárót. Példa: my-gateway.
- Konfiguráljon más API-beállításokat a forgatókönyvnek megfelelően. Válassza a Létrehozás lehetőséget.
API-művelet hozzáadása
- A bal oldali menüben válassza az API-k Albumok API-jait>.
- Válassza a + Művelet hozzáadása lehetőséget.
- Adja meg a műveleti beállításokat:
- Megjelenítendő név: Adjon meg egy leíró nevet a művelethez. Példa: Albumok lekérése.
- URL-cím: Válassza a Végpont beolvasása és megadása
/albums
lehetőséget. - Válassza a Mentés lehetőséget.
Az API meghívása a saját üzemeltetésű átjárón keresztül
Hívja meg az API-t a tárolóalkalmazásban futó saját üzemeltetésű átjáró teljes tartománynevével. Keresse meg a teljes tartománynevet a tárolóalkalmazás Áttekintés lapján az Azure Portalon, vagy futtassa a következő az containerapp show
parancsot.
#!/bin/bash
az containerapp show --name my-gateway --resource-group myResourceGroup \
--query "properties.configuration.ingress.fqdn" --output tsv
Futtassa például a következő curl
parancsot az API meghívásához a /albumapi/albums
végponton. Ha az API-nak előfizetési kulcsra van szüksége, adjon át egy érvényes előfizetési kulcsot az API Management-példányhoz fejlécként a kérelemben:
curl -i https://my-gateway.happyvalley-abcd1234.centralus.azurecontainerapps.io/albumapi/albums -H "Ocp-Apim-Subscription-Key: <subscription-key>"
Ha a teszt sikeres, a háttérrendszer egy sikeres HTTP-válaszkóddal és néhány adattal válaszol.
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"}]
Tipp.
Ha engedélyezte az API-nak az Application Insightsba való naplózását, lekérdezheti a naplókat a kérések és válaszok megtekintéséhez.
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: