Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam artikel ini, Anda akan mempelajari cara menggunakan perutean berbasis aturan dengan Azure Container Apps. Dengan perutean berbasis aturan, Anda membuat nama domain yang sepenuhnya memenuhi syarat (FQDN) di lingkungan aplikasi kontainer Anda. Anda kemudian menggunakan aturan untuk merutekan permintaan FQDN ini ke aplikasi kontainer yang berbeda, tergantung pada jalur setiap permintaan.
Prasyarat
Akun Azure dengan langganan aktif.
- Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Instal Azure CLI.
Pengaturan
Jalankan perintah berikut sehingga masuk ke Azure dari CLI.
az loginUntuk memastikan Anda menjalankan CLI versi terbaru, jalankan perintah peningkatan.
az upgradeAbaikan peringatan apa pun tentang modul yang saat ini digunakan.
Sekarang setelah ekstensi atau modul saat ini diinstal, daftarkan
Microsoft.AppdanMicrosoft.OperationalInsightsnamespace.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Membuat variabel lingkungan
Buat variabel lingkungan berikut.
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"
Membuat aplikasi kontainer
Jalankan perintah berikut untuk membuat aplikasi kontainer pertama Anda. Aplikasi kontainer ini menggunakan gambar quickstart Container Apps.
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.fqdnJalankan perintah berikut untuk membuat aplikasi kontainer kedua Anda. Aplikasi kontainer ini menggunakan gambar mulai cepat ASP.NET.
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.fqdnBuat konfigurasi rute HTTP.
Buat file berikut dan simpan sebagai
routing.yml.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-2Konfigurasi ini menentukan dua aturan perutean untuk lalu lintas HTTP.
Nota
Urutan aturan perutean penting.
Awalan yang lebih spesifik harus sebelum awalan yang kurang spesifik.
Misalnya, jika aturan pertama cocok dengan awalan /api, yang akan digunakan bahkan jika aturan kedua menggunakan awalan /api/v1.
Harta benda Deskripsi descriptionLabel yang dapat dibaca manusia untuk aturan routes.match.prefixAwalan jalur URL untuk dicocokkan. Contohnya, /api.routes.action.prefixRewriteApa yang harus digunakan untuk mengganti awalan yang cocok sebelum diteruskan. targets.containerAppNama aplikasi kontainer tempat permintaan rute yang sesuai dikirim. Aturan ini memungkinkan jalur yang berbeda di domain Anda untuk dirutekan ke aplikasi kontainer yang berbeda sambil juga memodifikasi jalur permintaan sebelum mencapai aplikasi tujuan.
Properti lain yang tidak tercantum yang dapat memengaruhi rute Anda termasuk yang berikut ini.
Harta benda Deskripsi route.match.pathDefinisi jalur pencocokan yang tepat. route.match.pathSeparatedPrefixMencocokkan rute pada batas '/' daripada teks apa pun. Misalnya, jika Anda mengatur nilai ke /product, maka nilai akan cocok pada/product/1, tetapi tidak/product1.route.match.caseSensitiveMengontrol apakah pola rute cocok dengan sensitivitas huruf besar/kecil atau tidak. target.labelArahkan ke revisi berlabel tertentu dalam aplikasi kontainer. target.revisionArahkan ke revisi tertentu pada aplikasi kontainer. Jalankan perintah berikut untuk membuat konfigurasi rute HTTP.
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.fqdnNama domain konfigurasi rute HTTP Anda yang sepenuhnya memenuhi syarat (FQDN) terlihat seperti contoh ini:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Pastikan kedua aplikasi kontainer sudah ada.
Buat file Bicep berikut dan simpan sebagai
routing.bicep.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.fqdnSebarkan file Bicep dengan perintah berikut:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepDalam output, temukan
outputs, yang berisi nama domain konfigurasi rute HTTP Anda yang sepenuhnya memenuhi syarat (FQDN). Contohnya:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Memverifikasi konfigurasi rute HTTP
Akses FQDN konfigurasi rute HTTP Anda dengan menambahkan jalur
/app1.Misalnya:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Anda melihat gambar panduan cepat Container Apps.
Akses FQDN konfigurasi rute HTTP Anda dengan menambahkan jalur
/app2.Misalnya:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Anda melihat gambar panduan cepat ASP.NET.
Membersihkan sumber daya
Jika Anda tidak akan menggunakan aplikasi ini lagi, jalankan perintah berikut untuk menghapus grup sumber daya beserta semua sumber daya yang dibuat dalam panduan cepat ini.
Perhatian
Perintah berikut menghapus grup sumber daya yang ditentukan dan semua sumber daya yang terkandung di dalamnya. Jika ada sumber daya di luar lingkup panduan cepat ini di dalam grup sumber daya yang ditentukan, sumber daya tersebut juga akan dihapus.
az group delete --name my-container-apps
Konten terkait
- Referensi Azure CLI
- referensi Bicep
- referensi templat ARM