Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ó: Az Azure Cloud Shell használatának első lépései.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, 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 egy helyileg telepített verziót 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álban megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
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 és kezelése 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 való frissítéshez futtassa a az upgrade parancsot.
Megjegyzés:
A cikkben szereplő Azure CLI-parancsok esetében az
containerappAzure CLI-bővítményre van szükség. Ha még nem használtaz containerappparancsokat, a bővítmény dinamikusan települ az elsőaz containerappparancs futtatásakor. További információ az Azure CLI-bővítményekről.
Átjáró kiépítése az Azure 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 cikk példáiban 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 nyissa meg az Azure API Management-példányt.
- A bal oldali menü Üzembe helyezés + infrastruktúra területén válassza ki a saját üzemeltetésű átjárókat.
- Válassza ki a kiépített átjáró-erőforrást, majd válassza a Beállítások>Telepítés lehetőséget.
- Másolja ki a token és a konfigurációs végpont értékeit.
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:
- Egy
my-environmentnevű tárolóalkalmazás-környezet, amelyet tárolóalkalmazások csoportosításához használsz. - 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 Azure 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.9.2" \
--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:
A
my-gatewayerőforráscsoportban lévőmyResourceGroupnevű tárolóalkalmazás. Ebben a példában a konténeralkalmazás amcr.microsoft.com/azure-api-management/gateway:2.9.2rendszerképet használja. A saját üzemeltetésű átjáróval kapcsolatos további információkért lásd a tárolórendszerképeket.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 Azure API Management-példány között a környezeti változók konfigurációs értékeinek átadásával. További részletekért tekintse meg a saját üzemeltetésű átjárók tárolókonfigurációs beállításait.
Megjegyzés:
Az Azure Container Apps bejövő forgalma a HTTPS-kéréseket HTTP formátumban továbbítja a saját hosztolt átjárókonténer-alkalmazásnak. Itt a
net.server.http.forwarded.proto.enabledkörnyezeti változó úgy van beállítvatrue, hogy a saját üzemeltetésű átjáró aX-Forwarded-Protofejlé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 nyissa meg a tárolóalkalmazást.
A tárolóalkalmazás Áttekintés lapján ellenőrizze, hogy az ÁllapotFutásban van.
Tesztkérelem küldése a következő állapotvégpontra:
/status-012345678990abcdef. Használjon például azcurlalábbi parancshoz hasonló parancsot.curl -i https://my-gateway.happyvalley-abcd1234.centralus.azurecontainerapps.io/status-012345678990abcdefEgy sikeres kérés esetén egy
200 OKválasz érkezik.
Jótanács
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 nyissa meg az Azure API Management-példányt.
A bal oldali menü Üzembe helyezés + infrastruktúra területén válassza ki a saját üzemeltetésű átjárókat.
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.
- Helyezzen üzembe egy API-t futtató tárolóalkalmazást ugyanabban a környezetben, mint a saját üzemeltetésű átjáró.
- Adja hozzá az API-t az Azure 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
Ebben a példában egy zenealbum API-t helyez üzembe egy tárolóalkalmazásban. Ha később a saját üzemeltetésű átjáró használatával szeretné elérni az API-t, helyezze üzembe az API-t ugyanabban a környezetben, mint a saját üzemeltetésű átjáró. Az ebben a példában használt erőforrások részletes lépéseit és információit a Gyorskezdés: Helyi forráskódból történő buildelés és telepítés az Azure Container Apps-be című útmutatóban találja. 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
/albumsvé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 nyissa meg a tárolóalkalmazást.
- A bal oldali menüben válassza a Hálózati>bejövő forgalom lehetőséget.
- Állítsa az Ingress értéket Engedélyezett-re.
- 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 Azure API Management-példányhoz
Az alábbi lépések bemutatják, hogyan adhat hozzá API-t az Azure API Management-példányhoz, és hogyan 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
- Az Azure Portalon nyissa 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-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 Create gombot.
API-művelet hozzáadása
- A bal oldali menüben válassza az API-k, majd az >.
- Válassza a + Művelet hozzáadása menüpontot.
- 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: Válassza a Get parancsot, és adja meg az
/albumsvégpontot. - Válassza az Mentésgombot.
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"}]
Jótanács
Ha engedélyezi 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.
Korlátozások
A saját üzemeltetésű átjárópéldányok az UDP protokollra támaszkodnak a szívveréshez és a sebességkorlátos kommunikációhoz. Mivel az Azure Container Apps jelenleg nem támogatja az UDP protokollt, sem a bejövő forgalom, sem a belső forgalom esetében, a szabályzat nem tudja szinkronizálni a rate-limit számlálót a példányok között. Következésképpen egy saját üzemeltetésű átjárótároló-alkalmazás három replikája az X korláttal való fenntartása a forgalom háromszorosát eredményezheti, amíg el nem éri az X korlátot.
Az Azure Container Apps lineárisan osztja el a kérelmeket minden elérhető és kifogástalan állapotú replikán. A sebességkorlátozás implementálásához megoszthatja a kívánt korlátot a futtatni kívánt replikák számával, és beállíthatja az eredményként kapott értéket a konfigurációban. Ennek a megközelítésnek megvannak a saját hátrányai, mivel előfordulhat, hogy nem tudja figyelembe venni a módosított számlálókat, ha és amikor a tárolóalkalmazások méretet váltanak.