Oktatóanyag: Mikroszolgáltatások közötti kommunikáció az Azure Container Appsben

Az Azure Container Apps az egyes tárolóalkalmazásokat tartománynéven keresztül teszi elérhetővé, ha a bejövő forgalom engedélyezve van. A külső környezeten belüli tárolóalkalmazások bejövő végpontjai nyilvánosan elérhetők, vagy csak az ugyanabban a környezetben lévő többi tárolóalkalmazás számára érhetők el.

Miután megismerte egy adott tárolóalkalmazás teljes tartománynevét, közvetlen hívásokat kezdeményezhet a szolgáltatáshoz a megosztott környezetben lévő többi tárolóalkalmazásból.

Ebben az oktatóanyagban üzembe helyez egy második tárolóalkalmazást, amely közvetlen szolgáltatáshívást végez a kód üzembe helyezése az Azure Container Appsben rövid útmutatóban üzembe helyezett API-hoz.

Az alábbi képernyőképen a jelen cikk végén látható, hogy a felhasználói felület mikroszolgáltatásai tárolóalkalmazásokban lesznek üzembe helyezve.

Képernyőkép az albumlista felhasználói felületének mikroszolgáltatásáról.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Előtérbeli alkalmazás üzembe helyezése az Azure Container Appsben
  • Az előtéralkalmazás csatolása az előző rövid útmutatóban üzembe helyezett API-végponthoz
  • Ellenőrizze, hogy az előtérbeli alkalmazás képes-e kommunikálni a háttér API-val

Előfeltételek

A kód–felhő rövid útmutatóban egy háttérbeli webes API van üzembe helyezve a zenei albumok listájának visszaadásához. Ha még nem telepítette az album API-mikroszolgáltatást, térjen vissza a rövid útmutatóhoz: A kód üzembe helyezése az Azure Container Appsben a folytatáshoz.

Telepítés

Ha továbbra is hitelesíti magát az Azure-ban, és a gyorsútmutatóban még definiálva vannak a környezeti változók, kihagyhatja az alábbi lépéseket, és közvetlenül a GitHub-adattár előkészítése szakaszra léphet.

Adja meg a következő változókat a Bash-rendszerhéjban.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

A parancs futtatása előtt cserélje le a helyére <YOUR_GITHUB_USERNAME> a GitHub-felhasználónevét.

Ezután adjon meg egy egyedi tárolóregisztrációs adatbázisnevet.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Jelentkezzen be az Azure CLI-be.

az login
az acr login --name $ACR_NAME

A GitHub-adattár előkészítése

  1. Egy új böngészőlapon keresse meg a felhasználói felületi alkalmazás adattárát , majd a lap tetején található Elágazás gombra kattintva elágazhatja az adattárat a fiókjához.

    Kövesse a GitHubon megjelenő utasításokat az adattár elágaztatásához, és térjen vissza ide a művelet befejezése után.

  2. Lépjen a kód–felhő mappa szülőjéhez . Ha továbbra is a code-to-cloud/src könyvtárban van, az alábbi paranccsal visszatérhet a szülőmappához.

    cd ../..
    
  3. A következő Git-paranccsal klónozza az elágaztatott adattárat a code-to-cloud-ui mappába:

    git clone https://github.com/$GITHUB_USERNAME/containerapps-albumui.git code-to-cloud-ui
    

    Megjegyzés

    Ha a clone parancs sikertelen, ellenőrizze, hogy sikeresen elágazott-e az adattár.

  4. Ezután módosítsa a könyvtárat a klónozott adattár src mappájára.

    cd code-to-cloud-ui/src
    

Az előtér-alkalmazás létrehozása

az acr build --registry $ACR_NAME --image albumapp-ui .

A parancs kimenete a az acr build forráskód Azure-ba való feltöltésének folyamatát és a docker build művelet részleteit mutatja.

  1. A következő parancs létrehoz egy tárolórendszerképet az album felhasználói felületéhez, és az ACR bejelentkezési kiszolgáló teljes nevét címkézi. A . parancs végén található a docker buildkörnyezete, ami azt jelenti, hogy ezt a parancsot a Dockerfile helyét tartalmazó src mappában kell futtatni.

    docker build --tag "$ACR_NAME.azurecr.io/albumapp-ui" . 
    

A rendszerkép leküldése az ACR-beállításjegyzékbe

  1. Először jelentkezzen be a Azure Container Registry.

    az acr login --name $ACR_NAME
    
  2. Most küldje le a lemezképet a beállításjegyzékbe.

    
     docker push "$ACR_NAME.azurecr.io/albumapp-ui" 
    

Kommunikáció tárolóalkalmazások között

Az előző rövid útmutatóban az album API egy tárolóalkalmazás létrehozásával és a külső bejövő forgalom engedélyezésével lett üzembe helyezve. A tárolóalkalmazás külsőre való bejövő forgalmának beállítása nyilvánosan elérhetővé tette a HTTP-végpont URL-címét.

Most az alábbi lépések végrehajtásával konfigurálhatja az előtérbeli alkalmazást az API-végpont meghívására:

  • Az API-alkalmazás lekérdezése a teljes tartománynévhez (FQDN).
  • Adja át az API teljes tartománynevét az containerapp create környezeti változóként, hogy a felhasználói felület alkalmazás beállíthassa az album API-hívásának alap URL-címét a kódban.

A felhasználói felületi alkalmazás a megadott végpontot használja az album API meghívásához. Az alábbi kód egy részlet az útvonalak > index.js fájlban használt kódból.

const api = axios.create({
  baseURL: process.env.API_BASE_URL,
  params: {},
  timeout: process.env.TIMEOUT || 5000,
});

Figyelje meg, hogy a baseURL tulajdonság hogyan kapja meg az értékét a API_BASE_URL környezeti változóból.

Futtassa a következő parancsot az API-végpont címének lekérdezéséhez.

API_BASE_URL=$(az containerapp show --resource-group $RESOURCE_GROUP --name $API_NAME --query properties.configuration.ingress.fqdn -o tsv)

Most, hogy beállította a API_BASE_URL változót az album API teljes tartománynevével, környezeti változóként megadhatja azt az előtérbeli tárolóalkalmazásnak.

Előtérbeli alkalmazás üzembe helyezése

Hozza létre és telepítse a tárolóalkalmazást az alábbi paranccsal.

az containerapp create \
  --name $FRONTEND_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/albumapp-ui  \
  --target-port 3000 \
  --env-vars API_BASE_URL=https://$API_BASE_URL \
  --ingress 'external' \
  --registry-server $ACR_NAME.azurecr.io \
  --query properties.configuration.ingress.fqdn

Ha hozzáadja az argumentumot --env-vars "API_BASE_URL=https://$API_ENDPOINT" a elemhez az containerapp create, meghatároz egy környezeti változót az előtér-alkalmazáshoz. Ezzel a szintaxissal a nevű API_BASE_URL környezeti változó az API teljes tartománynevére van állítva.

A parancs kimenete az containerapp create az előtér-alkalmazás URL-címét jeleníti meg.

Webhely megtekintése

A webhely megtekintéséhez használja a tárolóalkalmazás teljes tartománynevét. A lap az alábbi képernyőképhez fog hasonlítni.

Képernyőkép az albumlista felhasználói felületének mikroszolgáltatásáról.

Az erőforrások eltávolítása

Ha nem folytatja az alkalmazás használatát, futtassa az alábbi parancsot az erőforráscsoport és az ebben a rövid útmutatóban létrehozott összes erőforrás törléséhez.

Figyelemfelhívás

Ez a parancs törli a megadott erőforráscsoportot és a benne található összes erőforrást. Ha az oktatóanyag hatókörén kívüli erőforrások szerepelnek a megadott erőforráscsoportban, akkor azok is törlődnek.

az group delete --name $RESOURCE_GROUP

Tipp

Problémákat tapasztal? Tudassa velünk a GitHubon, hogy megnyit egy problémát az Azure Container Apps-adattárban.

Következő lépések