Megosztás a következőn keresztül:


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:

    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ált az 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:

  1. Jelentkezzen be az Azure Portalra, és keresse meg az API Management-példányt.
  2. A bal oldali menü Üzembe helyezés és infrastruktúra területén válassza az Átjárók lehetőséget.
  3. Válassza ki a kiépített átjáró-erőforrást, és válassza az Üzembe helyezés lehetőséget.
  4. 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 elnevezett my-gateway tárolóalkalmazás. Ebben a példában a tárolóalkalmazás a mcr.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ítva true , hogy a saját üzemeltetésű átjáró a X-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

  1. Jelentkezzen be az Azure Portalra, és keresse meg a tárolóalkalmazást.

  2. A tárolóalkalmazás Áttekintés lapján ellenőrizze, hogy az állapot fut-e.

  3. Tesztkérelem küldése a következő állapotvégpontra: /status-012345678990abcdef. Használjon például az curl 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

  1. Jelentkezzen be az Azure Portalra, és keresse meg az API Management-példányt.

  2. A bal oldali menü Üzembe helyezés és infrastruktúra területén válassza az Átjárók lehetőséget.

  3. 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.

    Képernyőkép az átjáró állapotáról a portálon.

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.

Példaforgatókönyv a saját üzemeltetésű átjáróval.

  1. API-t futtató tárolóalkalmazás üzembe helyezése a saját üzemeltetésű átjáróval azonos környezetben
  2. Az API hozzáadása az API Management-példányhoz
  3. 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:

  1. 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.

  2. Bontsa ki a forráskódot egy helyi mappába, és váltson a containerapps-albumapi-python-main/src mappára.

  3. 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 .
    
  4. 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.

  1. Jelentkezzen be az Azure Portalra, és keresse meg a tárolóalkalmazást.
  2. A bal oldali menüben válassza a Bejövő forgalom lehetőséget.
  3. A bejövő forgalom beállítása engedélyezve.
  4. Bejövő forgalom esetén válassza a Korlátozott tárolóalkalmazás-környezet lehetőséget.
  5. 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

  1. A portálon keresse meg azt az API Management-példányt, ahol konfigurálta a saját üzemeltetésű átjárót.
  2. A bal oldali menüben válassza az API-k>+ API hozzáadása lehetőséget.
  3. Válassza a HTTP lehetőséget , és válassza a Teljes lehetőséget. Adja meg a következő beállításokat:
    1. Megjelenítendő név: Adjon meg egy leíró nevet. Példa: Albumok API.
    2. 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
    3. URL-séma: Válassza a HTTP(S) lehetőséget.
    4. API URL-utótag: Adjon meg egy tetszőleges utótagot. Példa: albumapi.
    5. Átjárók: Válassza ki a kiépített saját üzemeltetésű átjárót. Példa: my-gateway.
  4. 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

  1. A bal oldali menüben válassza az API-k Albumok API-jait>.
  2. Válassza a + Művelet hozzáadása lehetőséget.
  3. Adja meg a műveleti beállításokat:
    1. Megjelenítendő név: Adjon meg egy leíró nevet a művelethez. Példa: Albumok lekérése.
    2. URL-cím: Válassza a Végpont beolvasása és megadása /albums lehetőséget.
    3. 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.