Azure Container Apps'te kural tabanlı yönlendirme ile özel etki alanı kullanma

HTTP yönlendirme yapılandırmaları, trafiği kendi etki alanı adlarınızdan kapsayıcı uygulamalarınıza yönlendirmenize olanak sağlayan özel etki alanlarını destekler.

Önkoşullar

  • Mevcut bir Azure Container Apps ortamı
  • Sahip olduğunuz özel bir alan adı
  • Etki alanınız için SSL sertifikası (otomatik sertifikalar kullanılmadığı sürece)
  • Ortamınıza dağıtılmış kapsayıcı uygulamalar

Özel etki alanı yapılandırması

Etki alanınızı barındıran DNS sağlayıcısını kullanarak özel etki alanınız için uygun DNS kayıtlarını oluşturun.

  • Kök etki alanını kullanıyorsanız (örneğin, contoso.com) aşağıdaki DNS kayıtlarını oluşturun:

    Kayıt türü Sunucu Değer
    A @ Container Apps ortamınızın IP adresi.
    TXT asuid Etki alanı doğrulama kodu.
  • Bir alt etki alanı kullanıyorsanız (örneğin, www.contoso.com) aşağıdaki DNS kayıtlarını oluşturun:

    Kayıt türü Sunucu Değer
    A Alt etki alanı (örneğin, www) Container Apps ortamınızın IP adresi.
    TXT asuid.{subdomain} (örneğin, asuid.www) Etki alanı doğrulama kodu.

Uyarı

Container Apps ortamınızın IP adresi ve etki alanı doğrulama kodu, Container Apps ortamınızın Özel DNS soneki ayarlarında bulunabilir.

Özel etki alanını Container Apps ortamınıza veya bir kapsayıcı uygulamasına bağlamayın. Etki alanları yalnızca bir uygulamaya, yola veya ortama bağlıdır.

Yol yapılandırması

Container Apps YAML dosyanızı bir bölüm içerecek şekilde customDomains güncelleştirin. Aşağıdaki ölçütlere göre bir bindingType ve bir certificateId ekleyin.

bindingType değeri Açıklama
Devre dışı Sertifika sağlanmadı. Etki alanı yalnızca HTTP üzerinden kullanılabilir ve HTTPS kullanılamaz.
Otomatik Sertifika isteğe bağlıdır. Bu etki alanı için zaten bir yönetilen sertifika oluşturulduysa, otomatik olarak yola eklenir. Aksi takdirde, etki alanı başlangıçta yalnızca HTTP üzerinden kullanılabilir. Bu etki alanı için yönetilen bir sertifika oluşturmak amacıyla, rota oluşturulduktan sonra yeni bir yönetilen sertifika oluşturun. Sertifika oluşturulduktan sonra otomatik olarak yola eklenir.
SniEnabled Bir sertifika gereklidir.
Sertifika türü certificateId biçimi
Hiç kimse Boş bırakın
Yönetilen /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/managedCertificates/{CertificateFriendlyName}
Yönetilmeyen /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/certificates/{CertificateFriendlyName}

Uyarı

Ortamınıza sertifika eklemek için aşağıdaki yöntemlerden birini kullanın:

Sertifikayı bir kapsayıcı uygulamasına bağlamayın.

Aşağıdaki örnekte yol yapılandırmasının nasıl ayarlanacağı gösterilmektedir.

customDomains:
  - name: "<CUSTOM_DOMAIN_ENDPOINT>" 
    certificateId: "<CERTIFICATE_ID>"
    bindingType: "SniEnabled" # Can also be "Disabled", "Auto"
rules:
  - description: "Routing to App1"
    routes:
      - match:
          prefix: "/1"
        action:
          prefixRewrite: "/"
    targets:
      - containerApp: "<APP1_CONTAINER_APP_NAME>"
  - description: "Routing to App2"
    routes:
      - match:
          prefix: "/2"
        action:
          prefixRewrite: "/"
      - match:
          prefix: "/"
    targets:
      - containerApp: "<APP2_CONTAINER_APP_NAME>"

Bu yapılandırma, HTTP trafiği için iki yönlendirme kuralı tanımlar.

Mülkiyet Açıklama
customDomains.name Kullanmak istediğiniz etki alanı adı (örnek: "app.contoso.com")
customDomains.certificateId Sertifikanızın kaynak kimliği (ile bindingType: "Auto"gerekli değildir)
customDomains.bindingType SSL nasıl işlenir: "SniEnabled" (Sunucu Adı Göstergesi), "Devre Dışı" (yalnızca HTTP) veya "Otomatik" (otomatik sertifika)
description Kural için insan tarafından okunabilir etiket
routes.match.prefix Eşleşecek URL yolu ön eki. Örneğin, /api.
routes.action.prefixRewrite İletmeden önce eşleşen ön ekin yerine ne koyabilirsiniz?
targets.containerApp Eşleşen rota isteğinin gönderildiği kapsayıcı uygulamanın adı.

Bu kurallar, özel etki alanınızdaki farklı yolların farklı kapsayıcı uygulamalarına yönlendirilmesine ve hedef uygulamaya ulaşmadan önce istek yolunu değiştirmesine olanak sağlar.

Yollarınızı etkileyebilecek, listelenmeyen diğer özellikler şunlardır.

Mülkiyet Açıklama
route.match.path Tam eşleşme yolunun tanımı.
route.match.pathSeparatedPrefix Herhangi bir metin yerine '/' sınırlarındaki yolları eşleştirir. Örneğin, /product değerini ayarlarsanız, /product/1 ile eşleşir, ancak /product1 ile eşleşmez.
route.match.caseSensitive Yol desenlerinin büyük/küçük harf duyarlılığına göre eşleşip eşleşmediğini kontrol eder.
target.label Bir kapsayıcı uygulamada belirli bir etiketli revizyona yönlendirme.
target.revision Kapsayıcı uygulamasında belirli bir düzeltmeye yönlendirme.

Rota yapılandırmanızı yönetme

Yol yapılandırmanızı yönetmek için aşağıdaki komutları kullanın.

Aşağıdaki komutları çalıştırmadan önce, <> ile çevrili yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.

Yeni yol yapılandırması oluşturma

Yeni bir yol yapılandırması oluşturmak için kullanın az containerapp env http-route-config create .

az containerapp env http-route-config create \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME> \
    --http-route-config-name <CONFIGURATION_NAME> \
    --yaml <CONTAINER_APPS_CONFIG_FILE>

Yol yapılandırmalarını listeleme

Tüm tanımlı yol yapılandırmalarını listelemek için kullanın az containerapp env http-route-config list .

az containerapp env http-route-config list \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME>

Yol yapılandırmasını güncelleştirme

Mevcut bir yol yapılandırmasını güncelleştirmek için kullanın az containerapp env http-route-config update .

az containerapp env http-route-config update \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <ENVIRONMENT_NAME> \
  --http-route-config-name <CONFIGURATION_NAME> \
  --yaml <CONTAINER_APPS_CONFIG_FILE>

Belirli bir yol yapılandırmasını gösterme

Yol yapılandırmasının ayrıntılarını görüntülemek için kullanın az containerapp env http-route-config show .

az containerapp env http-route-config show \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME> \
    --http-route-config-name <CONFIGURATION_NAME>

Yol yapılandırmasını silme

Yol yapılandırmasını kaldırmak için kullanın az containerapp env http-route-config delete .

az containerapp env http-route-config delete \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME> \
    --http-route-config-name <CONFIGURATION_NAME>

HTTP yönlendirmeyi doğrulama

Özel etki alanınızı kural tabanlı yönlendirmeyle yapılandırdıktan sonra:

  1. Özel etki alanınıza tarayıcıda gidin. Örneğin, https://app.contoso.com/1.

  2. İsteğin ilk kapsayıcı uygulamasına yönlendirildiğini doğrulayın.

  3. Yolu /2 olarak değiştirin. Örneğin, https://app.contoso.com/2.

  4. İsteğin artık ikinci kapsayıcı uygulamasına yönlendirildiğini doğrulayın.

İpucu

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