Aracılığıyla paylaş


Öğretici: Azure Container Apps'te Redis için Azure Cache hizmetine Bağlan (önizleme)

Azure Container Apps, kapsayıcı uygulamanızla aynı ortamda çalışan uygulamanızı destekleyen hizmetlere bağlanmanızı sağlar.

Geliştirme aşamasında uygulamanız hızla geliştirme hizmetleri oluşturabilir ve bu hizmetlere bağlanabilir. Bu hizmetlerin oluşturulması kolaydır ve üretim dışı ortamlar için tasarlanmış geliştirme sınıfı hizmetlerdir.

Üretim aşamasına geçerken uygulamanız üretim sınıfı yönetilen hizmetlere bağlanabilir.

Bu öğreticide hem geliştirme hem de üretim sınıfı Redis için Azure Cache hizmetini kapsayıcı uygulamanıza nasıl bağlayacağınız gösterilmektedir.

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

  • Yeni bir Redis geliştirme hizmeti oluşturma
  • Redis geliştirme hizmetine bir kapsayıcı uygulaması Bağlan
  • Hizmetin uygulama bağlantısını kesme
  • Bellek içi önbellek çalıştıran hizmeti inceleme

Önkoşullar

Kaynak Açıklama
Azure hesabı Etkin bir abonelik gereklidir. Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
Azure CLI Makinenizde yoksa Azure CLI'yi yükleyin.
Azure kaynak grubu Doğu ABD bölgesinde my-services-resource-group adlı bir kaynak grubu oluşturun.
Redis için Azure Önbelleği my-services-resource-group içinde bir Redis için Azure Cache örneği oluşturun.

Ayarlama

  1. Azure CLI'da oturum açın.

    az login
    
  2. Container Apps CLI uzantısını yükseltin.

    az extension add --name containerapp --upgrade
    
  3. Ad alanını Microsoft.App kaydedin.

    az provider register --namespace Microsoft.App
    
  4. Ad alanını Microsoft.ServiceLinker kaydedin.

    az provider register --namespace Microsoft.ServiceLinker
    
  5. Kaynak grubu değişkenini ayarlayın.

    RESOURCE_GROUP="my-services-resource-group"
    
  6. Redis için Azure Cache DNS adı için bir değişken oluşturun.

    Redis için Azure Cache örneklerinin listesini görüntülemek için aşağıdaki komutu çalıştırın.

    az redis list --resource-group "$RESOURCE_GROUP" --query "[].name" -o table
    
  7. Ortam adınızı tutmak için bir değişken oluşturun.

    değerini kapsayıcı uygulamaları ortamınızın adıyla değiştirin <MY_ENVIRONMENT_NAME> .

    ENVIRONMENT=<MY_ENVIRONMENT_NAME>
    
  8. Konum değişkenini ayarlayın.

    LOCATION="eastus"
    
  9. Yeni bir ortam oluşturun.

    az containerapp env create \
      --location "$LOCATION" \
      --resource-group "$RESOURCE_GROUP" \
      --name "$ENVIRONMENT"
    

CLI yapılandırılıp bir ortam oluşturulduktan sonra artık bir uygulama ve geliştirme hizmeti oluşturabilirsiniz.

Geliştirme hizmeti oluşturma

Örnek uygulama, bellek içinde veya Redis önbelleğinde bir dizi dizeyi yönetir.

Redis geliştirme hizmetini oluşturun ve olarak adlandırın myredis.

az containerapp add-on redis create \
  --name myredis \
  --resource-group "$RESOURCE_GROUP" \
  --environment "$ENVIRONMENT"

Kapsayıcı uygulaması oluşturma

Ardından, İnternet'e erişilebilen kapsayıcı uygulamanızı oluşturun.

  1. Yeni bir kapsayıcı uygulaması oluşturun ve redis hizmetine bağlayın.

    az containerapp create \
      --name myapp \
      --image mcr.microsoft.com/k8se/samples/sample-service-redis:latest \
      --ingress external \
      --target-port 8080 \
      --bind myredis \
      --environment "$ENVIRONMENT" \
      --resource-group "$RESOURCE_GROUP" \
      --query properties.configuration.ingress.fqdn
    

    Bu komut, tam etki alanı adını (FQDN) döndürür. Bu öğretici boyunca uygulamanın davranışını inceleyebilmeniz için bu konumu bir web tarayıcısına yapıştırın.

    Redis önbellek hizmeti çalıştıran kapsayıcı uygulamasının ekran görüntüsü.

    komutu, containerapp create kapsayıcı uygulaması ile Redis geliştirme hizmeti arasında bağlantı oluşturmak için seçeneğini kullanır --bind .

    Bağlama isteği, kimlik bilgileri ve bağlantı dizesi dahil olmak üzere bağlantı bilgilerini toplar ve ortam değişkenleri olarak uygulamaya ekler. Bu değerler artık hizmetle bağlantı oluşturmak için kullanılacak uygulama kodu tarafından kullanılabilir.

    Bu durumda, aşağıdaki ortam değişkenleri uygulama tarafından kullanılabilir:

    REDIS_ENDPOINT=myredis:6379
    REDIS_HOST=myredis
    REDIS_PASSWORD=...
    REDIS_PORT=6379
    

    Uygulamaya bir tarayıcı üzerinden erişirseniz, Redis veritabanında dize ekleyebilir ve kaldırabilirsiniz. Redis önbelleği uygulama verilerini depolamaktan sorumludur, bu nedenle veriler sıfıra ölçeklendikten sonra uygulama yeniden başlatıldıktan sonra bile kullanılabilir.

    Bağlamayı uygulamanızdan da kaldırabilirsiniz.

  2. Redis geliştirme hizmetinin bağlamasını kaldırın.

    Kapsayıcı uygulamasından bağlamayı kaldırmak için seçeneğini kullanın --unbind .

    az containerapp update \
      --name myapp \
      --unbind myredis \
      --resource-group "$RESOURCE_GROUP"
    

    Uygulama, ortam değişkenleri tanımlanmazsa metin dizelerinin bellekte depolanması için yazılır.

    Bu durumda, uygulama sıfıra ölçeklendirilirse veriler kaybolur.

    Web tarayıcınıza dönüp web uygulamasını yenileyerek bu değişikliği doğrulayabilirsiniz. Artık görüntülenen yapılandırma bilgilerinin verilerin bellek içinde depolandığını gösterdiğini görebilirsiniz.

    Artık daha önce depolanmış verilerinizi görmek için uygulamayı Redis hizmetine yeniden birleştirebilirsiniz.

  3. Redis geliştirme hizmetini yeniden bağlama.

    az containerapp update \
      --name myapp \
      --bind myredis \
      --resource-group "$RESOURCE_GROUP"
    

    Hizmet yeniden bağlandığında, Redis'te depolanan verileri görmek için web uygulamasını yenileyebilirsiniz.

Yönetilen hizmete Bağlan

Uygulamanız üretime geçmeye hazır olduğunda, uygulamanızı geliştirme hizmeti yerine yönetilen bir hizmete bağlayabilirsiniz.

Aşağıdaki adımlar uygulamanızı mevcut bir Redis için Azure Cache örneğine bağlar.

  1. DNS adınız için bir değişken oluşturun.

    değerini Redis için Azure Cache örneğinizin DNS adıyla değiştirdiğinden <YOUR_DNS_NAME> emin olun.

    AZURE_REDIS_DNS_NAME=<YOUR_DNS_NAME>
    
  2. Redis için Azure Cache bağlayın.

    az containerapp update \
      --name myapp \
      --unbind myredis \
      --bind "$AZURE_REDIS_DNS_NAME" \
      --resource-group "$RESOURCE_GROUP"
    

    Bu komut aynı anda geliştirme bağlamasını kaldırır ve üretim sınıfı yönetilen hizmete bağlamayı oluşturur.

  3. Tarayıcınıza dönün ve sayfayı yenileyin.

    Konsol, aşağıdaki örnekteki gibi değerleri yazdırır.

    AZURE_REDIS_DATABASE=0
    AZURE_REDIS_HOST=azureRedis.redis.cache.windows.net
    AZURE_REDIS_PASSWORD=il6HI...
    AZURE_REDIS_PORT=6380
    AZURE_REDIS_SSL=true
    

    Not

    Eklentiler ve yönetilen hizmetler için kullanılan ortam değişkeni adları biraz farklılık gösterir.

    Bu öğretici için kullanılan örnek kodu görmek isterseniz lütfen bölümüne bakın https://github.com/Azure-Samples/sample-service-redis.

    Artık yeni dizeler eklediğinizde, değerler geliştirme hizmeti yerine Redis için Azure Cache bir örnekte depolanır.

Kaynakları temizleme

Bu öğreticide oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız uygulamayı ve Redis hizmetini silebilirsiniz.

Uygulama ve hizmet bağımsızdır. Bu bağımsızlık, hizmetin ortamdaki herhangi bir sayıda uygulamaya bağlanabileceği ve tüm uygulamaların bağlantısı kesilse bile açıkça silinene kadar var olabileceği anlamına gelir.

Kapsayıcı uygulamanızı ve geliştirme hizmetini silmek için aşağıdaki komutları çalıştırın.

az containerapp delete --name myapp
az containerapp add-on redis delete --name myredis

Alternatif olarak, kapsayıcı uygulamasını ve tüm hizmetleri kaldırmak için kaynak grubunu silebilirsiniz.

az group delete \
  --resource-group "$RESOURCE_GROUP"

Sonraki adımlar