Öğretici: Azure Container Apps'te mikro hizmetler arasında iletişim

Azure Container Apps, giriş etkinse her kapsayıcı uygulamasını bir etki alanı adı aracılığıyla kullanıma sunar. Dış ortamdaki kapsayıcı uygulamaları için giriş uç noktaları genel olarak erişilebilir veya yalnızca aynı ortamdaki diğer kapsayıcı uygulamaları tarafından kullanılabilir.

Belirli bir kapsayıcı uygulamasının tam etki alanı adını bildiğinizde, paylaşılan ortamdaki diğer kapsayıcı uygulamalarından hizmete doğrudan çağrılar yapabilirsiniz.

Bu öğreticide, Kodunuzu Azure Container Apps'e dağıtma hızlı başlangıcında dağıtılan API'ye doğrudan hizmet çağrısı yapan ikinci bir kapsayıcı uygulaması dağıtacaksınız.

Aşağıdaki ekran görüntüsünde, bu makalenin sonunda kapsayıcı uygulamalarına dağıtan kullanıcı arabirimi mikro hizmeti gösterilmektedir.

Albüm listesi kullanıcı arabirimi mikro hizmetinin ekran görüntüsü.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Azure Container Apps'e ön uç uygulaması dağıtma
  • Ön uç uygulamasını önceki hızlı başlangıçta dağıtılan API uç noktasına bağlama
  • Ön uç uygulamasının arka uç API'siyle iletişim kurabildiğini doğrulama

Önkoşullar

Buluta kod hızlı başlangıçta, müzik albümlerinin listesini döndürmek için bir arka uç web API'si dağıtılır. Albüm API'sini mikro hizmeti dağıtmadıysanız Hızlı Başlangıç: Devam etmek için kodunuzu Azure Container Apps'e dağıtma bölümüne dönün.

Ayarlama

Şu anda Azure'da kimliğiniz doğrulandıysa ve hızlı başlangıçta tanımlanan ortam değişkenlerine sahipseniz, aşağıdaki adımları atlayın ve doğrudan GitHub deposunu hazırlama bölümüne gidin.

Bash kabuğunuzda aşağıdaki değişkenleri tanımlayın.

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

Bu komutu çalıştırmadan önce değerini GitHub kullanıcı adınızla değiştirdiğinizden <YOUR_GITHUB_USERNAME> emin olun.

Ardından, size özel bir kapsayıcı kayıt defteri adı tanımlayın.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Azure CLI'da oturum açın.

az login
az acr login --name $ACR_NAME

GitHub deposunu hazırlama

  1. Yeni bir tarayıcı sekmesinde kullanıcı arabirimi uygulamasının deposuna gidin ve sayfanın üst kısmındaki Çatal düğmesini seçerek deponun hesabınıza çatalını oluşturun.

    GitHub'daki yönergeleri izleyerek deponun çatalını oluşturun ve işlem tamamlandıktan sonra buraya dönün.

  2. Koddan buluta klasörünün üst öğesine gidin. Hala koddan buluta/src dizinindeyseniz, üst klasöre dönmek için aşağıdaki komutu kullanabilirsiniz.

    cd ../..
    
  3. Çatallanmış deponuzu code-to-cloud-ui klasörüne kopyalamak için aşağıdaki git komutunu kullanın:

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

    Not

    clone Komut başarısız olursa, deponun çatalını başarıyla oluşturduğunuzu denetleyin.

  4. Ardından, dizini kopyalanan deponun src klasörüne değiştirin.

    cd code-to-cloud-ui/src
    

Ön uç uygulamasını oluşturma

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

Komutun çıktısı az acr build , kaynak kodun Azure'a yükleme ilerleme durumunu ve işlemin ayrıntılarını docker build gösterir.

  1. Aşağıdaki komut albüm kullanıcı arabirimi için bir kapsayıcı görüntüsü oluşturur ve bunu ACR oturum açma sunucusunun tam adıyla etiketler. . Komutun sonundaki docker derleme bağlamını temsil eder, yani bu komut Dockerfile'ın bulunduğu src klasöründe çalıştırılmalıdır.

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

Görüntüyü ACR kayıt defterinize gönderme

  1. İlk olarak Azure Container Registry'nizde oturum açın.

    az acr login --name $ACR_NAME
    
  2. Şimdi görüntüyü kayıt defterinize gönderin.

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

Kapsayıcı uygulamaları arasında iletişim kurma

Önceki hızlı başlangıçta, albüm API'si bir kapsayıcı uygulaması oluşturularak ve dış giriş etkinleştirilerek dağıtıldı. Kapsayıcı uygulamasının girişinin dış olarak ayarlanması HTTP uç nokta URL'sinin genel kullanıma sunulmasını sağladı.

Şimdi aşağıdaki adımları izleyerek ön uç uygulamayı API uç noktasını çağıracak şekilde yapılandırabilirsiniz:

  • API uygulamasını tam etki alanı adı (FQDN) için sorgula.
  • UI uygulamasının kod içindeki albüm API çağrısının temel URL'sini ayarlayabilmesi için API FQDN'sini az containerapp create bir ortam değişkeni olarak geçirin.

Kullanıcı arabirimi uygulaması, albüm API'sini çağırmak için sağlanan uç noktayı kullanır. Aşağıdaki kod, yollar > index.js dosyasında kullanılan koddan bir alıntıdır.

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

Özelliğin baseURL değerini ortam değişkeninden nasıl aldığına API_BASE_URL dikkat edin.

API uç noktası adresini sorgulamak için aşağıdaki komutu çalıştırın.

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

Artık değişkenini API_BASE_URL albüm API'sinin FQDN'siyle ayarladığınıza göre, bunu ön uç kapsayıcı uygulamasına ortam değişkeni olarak sağlayabilirsiniz.

Ön uç uygulamasını dağıtma

Aşağıdaki komutla kapsayıcı uygulamanızı oluşturun ve dağıtın.

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

bağımsız değişkenini --env-vars "API_BASE_URL=https://$API_ENDPOINT" öğesine az containerapp createekleyerek, ön uç uygulamanız için bir ortam değişkeni tanımlarsınız. Bu söz dizimi ile adlı API_BASE_URL ortam değişkeni API'nin FQDN'sine ayarlanır.

Komutun az containerapp create çıkışı ön uç uygulamasının URL'sini gösterir.

Web sitesini görüntüleme

Web sitesini görüntülemek için kapsayıcı uygulamasının FQDN'sini kullanın. Sayfa aşağıdaki ekran görüntüsüne benzer.

Albüm listesi kullanıcı arabirimi mikro hizmetinin ekran görüntüsü.

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekseniz, bu hızlı başlangıçta oluşturulan tüm kaynaklarla birlikte kaynak grubunu silmek için aşağıdaki komutu çalıştırın.

Dikkat

Bu komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu öğreticinin kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete --name $RESOURCE_GROUP

İpucu

Sorun mu yaşıyorsunuz? Azure Container Apps deposunda bir sorun açarak GitHub'da bize bildirin.

Sonraki adımlar