Sdílet prostřednictvím


Kurz: Komunikace mezi mikroslužbami v Azure Container Apps

Azure Container Apps zveřejňuje každou aplikaci kontejneru prostřednictvím názvu domény, pokud je povolený příchozí přenos dat . Koncové body příchozího přenosu dat pro kontejnerové aplikace v rámci externího prostředí můžou být veřejně přístupné nebo dostupné jenom pro jiné kontejnerové aplikace ve stejném prostředí.

Jakmile znáte plně kvalifikovaný název domény pro danou aplikaci kontejneru, můžete do služby provádět přímá volání z jiných kontejnerových aplikací v rámci sdíleného prostředí.

V tomto kurzu nasadíte druhou aplikaci kontejneru, která provede přímé volání služby do rozhraní API nasazeného v rychlém startu Nasazení kódu do Azure Container Apps .

Následující snímek obrazovky ukazuje nasazení mikroslužby uživatelského rozhraní do kontejnerových aplikací na konci tohoto článku.

Snímek obrazovky s mikroslužbou uživatelského rozhraní seznamu alb

V tomto kurzu se naučíte:

  • Nasazení front-endové aplikace do Azure Container Apps
  • Propojení front-endové aplikace s koncovým bodem rozhraní API nasazeného v předchozím rychlém startu
  • Ověření komunikace front-endové aplikace s back-endovým rozhraním API

Požadavky

V rychlém startu z kódu do cloudu se nasadí back-endové webové rozhraní API, které vrátí seznam hudebních alb. Pokud jste mikroslužbu rozhraní API alba nenasazovali, vraťte se do rychlého startu: Pokračujte nasazením kódu do služby Azure Container Apps .

Nastavení

Pokud jste aktuálně ověřeni v Azure a máte proměnné prostředí definované z rychlého startu, přeskočte následující kroky a přejděte přímo k přípravě úložiště GitHub.

Definujte následující proměnné v prostředí Bash.

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

Před spuštěním tohoto příkazu nezapomeňte nahradit <YOUR_GITHUB_USERNAME> uživatelské jméno GitHubu.

Dále definujte název registru kontejneru, který je pro vás jedinečný.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Přihlaste se k Azure CLI.

az login
az acr login --name $ACR_NAME

Příprava úložiště GitHub

  1. Na nové kartě prohlížeče přejděte do úložiště pro aplikaci uživatelského rozhraní a v horní části stránky vyberte tlačítko Fork a vytvořte fork úložiště na váš účet.

    Postupujte podle pokynů z GitHubu k vytvoření forku úložiště a po dokončení operace se sem vraťte.

  2. Přejděte do nadřazené složky kódu do cloudu . Pokud jste stále v adresáři code-to-cloud/src , můžete se vrátit do nadřazené složky pomocí následujícího příkazu.

    cd ../..
    
  3. Pomocí následujícího příkazu Git naklonujte své forkované úložiště do složky code-to-cloud-ui :

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

    Poznámka:

    Pokud příkaz clone selže, zkontrolujte, jestli jste úložiště úspěšně rozvětvovali.

  4. Dále změňte adresář do složky src klonovaného úložiště.

    cd code-to-cloud-ui/src
    

Sestavení front-endové aplikace

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

Výstup z az acr build příkazu ukazuje průběh nahrávání zdrojového kódu do Azure a podrobnosti docker build o operaci.

  1. Následující příkaz vytvoří image kontejneru pro uživatelské rozhraní alba a označí ji plně kvalifikovaným názvem přihlašovacího serveru ACR. Na . konci příkazu představuje kontext sestavení Dockeru, což znamená, že tento příkaz by se měl spustit ve složce src , kde se nachází soubor Dockerfile.

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

Nasdílení image do registru ACR

  1. Nejprve se přihlaste ke službě Azure Container Registry.

    az acr login --name $ACR_NAME
    
  2. Teď nasdílejte image do registru.

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

Komunikace mezi kontejnerovými aplikacemi

V předchozím rychlém startu se rozhraní API alba nasadilo vytvořením aplikace kontejneru a povolením externího příchozího přenosu dat. Nastavení příchozího přenosu dat aplikace kontejneru na externí zpřístupnilo adresu URL koncového bodu HTTP veřejně.

Teď můžete front-endové aplikaci nakonfigurovat tak, aby volala koncový bod rozhraní API pomocí následujících kroků:

  • Zadejte dotaz na aplikaci rozhraní API pro plně kvalifikovaný název domény (FQDN).
  • Předejte plně kvalifikovaný název domény az containerapp create rozhraní API jako proměnnou prostředí, aby aplikace uživatelského rozhraní mohl nastavit základní adresu URL pro volání rozhraní API alba v rámci kódu.

Aplikace uživatelského rozhraní používá koncový bod poskytnutý k vyvolání rozhraní API alba. Následující kód je výňatek z kódu použitého v trasách > index.js souboru.

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

Všimněte si, jak baseURL vlastnost získá hodnotu z API_BASE_URL proměnné prostředí.

Spuštěním následujícího příkazu zadejte dotaz na adresu koncového bodu rozhraní API.

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

Teď, když nastavíte API_BASE_URL proměnnou pomocí plně kvalifikovaného názvu domény rozhraní API alba, můžete ji poskytnout jako proměnnou prostředí pro front-endovou aplikaci kontejneru.

Nasazení front-endové aplikace

Pomocí následujícího příkazu vytvořte a nasaďte aplikaci kontejneru.

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

Přidáním argumentu --env-vars "API_BASE_URL=https://$API_ENDPOINT" do az containerapp createdefinujete proměnnou prostředí pro front-endovou aplikaci. S touto syntaxí je proměnná prostředí s názvem nastavená na plně kvalifikovaný API_BASE_URL název domény rozhraní API.

Výstup z az containerapp create příkazu zobrazuje adresu URL front-endové aplikace.

Zobrazení webu

K zobrazení webu použijte plně kvalifikovaný název domény aplikace kontejneru. Stránka se podobá následujícímu snímku obrazovky.

Snímek obrazovky s mikroslužbou uživatelského rozhraní seznamu alb

Vyčištění prostředků

Pokud tuto aplikaci nebudete dál používat, spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto rychlém startu.

Upozornění

Tento příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto kurzu existují v zadané skupině prostředků, odstraní se také.

az group delete --name $RESOURCE_GROUP

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Další kroky