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.
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
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.
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 ../..
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.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.
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
Nejprve se přihlaste ke službě Azure Container Registry.
az acr login --name $ACR_NAME
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 create
definujete 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.
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