Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Container Apps ile kural tabanlı yönlendirmeyi kullanmayı öğreneceksiniz. Kural tabanlı yönlendirme ile kapsayıcı uygulamalar ortamınızda tam etki alanı adı (FQDN) oluşturursunuz. Ardından, bu FQDN isteklerini her isteğin yoluna bağlı olarak farklı kapsayıcı uygulamalarına yönlendirmek için kuralları kullanırsınız.
Önkoşullar
Etkin aboneliği olan Azure hesabı.
- Eğer sizde yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.
Azure CLI’yi yükleyin.
Kurulum
Cli'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın.
az loginCLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.
az upgradeHâlihazırda kullanılmakta olan modüller hakkında herhangi bir uyarıyı dikkate almayın.
Geçerli uzantı veya modül yüklendikten sonra,
Microsoft.AppveMicrosoft.OperationalInsightsad alanlarını kaydedin.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Ortam değişkenlerini oluşturma
Aşağıdaki ortam değişkenlerini oluşturun.
CONTAINER_APP_1_NAME="my-container-app-1"
CONTAINER_APP_1_IMAGE="mcr.microsoft.com/k8se/quickstart:latest"
CONTAINER_APP_1_TARGET_PORT="80"
CONTAINER_APP_2_NAME="my-container-app-2"
CONTAINER_APP_2_IMAGE="mcr.microsoft.com/dotnet/samples:aspnetapp"
CONTAINER_APP_2_TARGET_PORT="8080"
LOCATION="eastus"
RESOURCE_GROUP="my-container-apps"
ENVIRONMENT_NAME="my-container-apps-env"
ROUTE_CONFIG_NAME="my-route-config"
Kapsayıcı uygulamaları oluşturun
İlk kapsayıcı uygulamanızı oluşturmak için aşağıdaki komutu çalıştırın. Bu kapsayıcı uygulaması Container Apps hızlı başlangıç görüntüsünü kullanır.
az containerapp up \ --name $CONTAINER_APP_1_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_1_IMAGE \ --target-port $CONTAINER_APP_1_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnİkinci kapsayıcı uygulamanızı oluşturmak için aşağıdaki komutu çalıştırın. Bu kapsayıcı uygulaması ASP.NET hızlı başlangıç görüntüsünü kullanır.
az containerapp up \ --name $CONTAINER_APP_2_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_2_IMAGE \ --target-port $CONTAINER_APP_2_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnHTTP yol yapılandırması oluşturma.
Aşağıdaki dosyayı oluşturun ve olarak
routing.ymlkaydedin.rules: - description: App 1 rule routes: - match: prefix: /app1 action: prefixRewrite: / targets: - containerApp: my-container-app-1 - description: App 2 rule routes: - match: path: /app2 action: prefixRewrite: / - match: path: / targets: - containerApp: my-container-app-2Bu yapılandırma, HTTP trafiği için iki yönlendirme kuralı tanımlar.
Uyarı
Yönlendirme kurallarının sırası önemlidir.
Daha belirli öneklerin, daha az belirli öneklerden önce gelmesi gerekir.
Örneğin, ilk kural /api ön eki ile eşleşiyorsa, ikinci kural /api/v1 ön ekini kullansa bile bu kullanılır.
Mülkiyet Açıklama descriptionKural için insan tarafından okunabilir etiket routes.match.prefixEşleşecek URL yolu ön eki. Örneğin, /api.routes.action.prefixRewriteİletmeden önce eşleşen ön ekin yerine ne koyabilirsiniz? targets.containerAppEşleşen yol isteğinin gönderildiği kapsayıcı uygulamasının adı. Bu kurallar, etki alanınızdaki farklı yolların farklı kapsayıcı uygulamalarına yönlendirilmesine olanak sağlarken, hedef uygulamaya ulaşmadan önce istek yolunu da değiştirir.
Yollarınızı etkileyebilecek, listelenmeyen diğer özellikler şunlardır.
Mülkiyet Açıklama route.match.pathTam eşleşme yol tanımı. route.match.pathSeparatedPrefixHerhangi bir metin yerine '/' sınırlarındaki yolları eşleştirir. Örneğin, değeri /productolarak ayarlarsanız,/product/1üzerinde eşleşir, ancak/product1üzerinde eşleşmez.route.match.caseSensitiveYol desenlerinin büyük/küçük harf duyarlılığıyla eşleşip eşleşmediğini denetler. target.labelKapsayıcı uygulamasında belirli bir etiketli düzeltmeye yönlendirme. target.revisionKapsayıcı uygulamasında belirli bir düzeltmeye yönlendirme. HTTP yol yapılandırmasını oluşturmak için aşağıdaki komutu çalıştırın.
az containerapp env http-route-config create \ --http-route-config-name $ROUTE_CONFIG_NAME \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --yaml routing.yml \ --query properties.fqdnHTTP yol yapılandırmanızın tam nitelikli etki alanı adı (FQDN) şu örneğe benzer:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Her iki kapsayıcı uygulamanın da zaten var olduğundan emin olun.
Aşağıdaki Bicep dosyasını oluşturun ve
routing.bicepdosya adı olarak kaydedin.resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2024-10-02-preview' = { name: 'my-container-apps-env' location: 'eastus' tags: {} properties: { workloadProfiles: [ { workloadProfileType: 'Consumption' name: 'Consumption' } ] } } resource httpRouteConfig 'Microsoft.App/managedEnvironments/httpRouteConfigs@2024-10-02-preview' = { parent: containerAppsEnvironment name: 'my-route-config' location: 'eastus' properties: { rules: [ { description: 'App 1 rule' routes: [ { match: { prefix: '/app1' } action: { prefixRewrite: '/' } } ] targets: [ { containerApp: 'my-container-app-1' } ] } { description: 'App 2 rule' routes: [ { match: { path: '/app2' } action: { prefixRewrite: '/' } } { match: { path: '/' } } ] targets: [ { containerApp: 'my-container-app-2' } ] } ] } } output fqdn string = httpRouteConfig.properties.fqdnBicep dosyasını aşağıdaki komutla dağıtın:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepÇıktıda, HTTP yol yapılandırmanızın tam etki alanı adını (FQDN) içeren
outputsöğesini bulun. Örneğin:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
HTTP yol yapılandırmasını doğrulama
HTTP yol yapılandırması FQDN'nize
/app1yolu ile gidin.Örneğin:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Container Apps hızlı başlangıç görüntüsünü görürsünüz.
HTTP yol yapılandırması FQDN'nize
/app2yolu ile gidin.Örneğin:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.ASP.NET hızlı başlangıç görüntüsünü görürsünüz.
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
Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu hızlı başlangıcın kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.
az group delete --name my-container-apps