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, App Service uygulamanızda sidecar'ları etkinleştirmek ve yapılandırmak için pratik adımlar sunulmaktadır.
Önemli
Sidecarlar ana uygulamanızla aynı ağ ad alanını ve ortamı paylaştığından, yalnızca güvenilir kodları ve kapsayıcı imajlarını sidecar olarak çalıştırın.
Azure portalında bir sidecar oluşturun
- Azure portalında App Service kaynağınıza gidin.
- Dağıtım Merkezi'ni seçin ve Kapsayıcılar sekmesine gidin.
- Yan araç eklemek için Kapsayıcı ekle'ye tıklayın.
- Görüntü adını, kayıt defteri kimlik doğrulamasını (gerekirse) ve ortam değişkenlerini doldurun.
- Değişikliklerinizi kaydedin. Sidecar, ana uygulama kapsayıcınızla birlikte dağıtılacaktır.
Linux özel kapsayıcıları için sidecar desteğini etkinleştirme
Özel bir container için sidecar desteğini açıkça etkinleştirmeniz gerekir. Portalda, App Service oluşturma sihirbazında seçimi yapabilirsiniz. Ayrıca, aşağıdaki ekran görüntüsünde gösterildiği gibi mevcut bir uygulamanın Dağıtım Merkezi>Kapsayıcıları sayfasında mevcut bir uygulama için de etkinleştirebilirsiniz:
Azure CLI ile web uygulamanızı sitecontainers yapılandırmasını kullanacak şekilde dönüştürün. Örneğin:
az webapp sitecontainers convert --mode sitecontainers --name <YourWebAppName> --resource-group <YourResourceGroup>
Bu, LinuxFxVersion öğesini sitecontainers olarak günceller ve sidecar deseni için destek sağlar.
Klasik özel kapsayıcı (Docker) moduna geri dönme
Sepet etkin yapılandırmadan klasik Docker tabanlı kuruluma geri dönmeniz gerekiyorsa aşağıdaki komutu çalıştırın:
az webapp sitecontainers convert \
--mode docker \
--name <app-name> \
--resource-group <resource-group>
Bu komut tüm sepet kapsayıcılarını kaldırır ve uygulamanızı klasik DOCKER|<image> stil yapılandırmasını kullanacak şekilde sıfırlar. Tüm ayrıntılar için az webapp sitecontainers convert için Azure CLI belgelerine bakın.
Daha fazla bilgi için bkz. Sidecar özellikli özel kapsayıcılar arasındaki farklar nelerdir?
Sidecar etkin özel konteynerler için farklar nelerdir?
Sidecar destekli uygulamalar, sidecar destekli olmayan uygulamalardan farklı şekillerde yapılandırılır.
- Sidecar etkinleştirilmiş uygulamalar
LinuxFxVersion=sitecontainersile belirlenir vesitecontainerskaynaklarıyla yapılandırılır. - Sidecar etkinleştirilmemiş uygulamalar, kapsayıcı adını ve türünü doğrudan
LinuxFxVersion=DOCKER|<image-details>ile yapılandırır.
Daha fazla bilgi için bkz. az webapp config set --linux-fx-version.
Sidecar destekli olmayan uygulamalar, ana kapsayıcıyı aşağıdaki gibi uygulama ayarları ile yapılandırır:
DOCKER_REGISTRY_SERVER_URLDOCKER_REGISTRY_SERVER_USERNAMEDOCKER_REGISTRY_SERVER_PASSWORDWEBSITES_PORT
Bu ayarlar sidecar özellikli uygulamalar için geçerli değildir.
ARM şablonuyla bir sidecar tanımlayın
Microsoft.Web/sites/sitecontainers kaynak türünü bir uygulamaya ekleyin. Kullanıcı tarafından atanan yönetilen kimliği kullanarak ACR'den bir sidecar görüntüsü çekmek için, authType ifadesini UserAssigned olarak belirtin ve userManagedIdentityClientId sağlayın.
{
"type": "Microsoft.Web/sites/sitecontainers",
"apiVersion": "2024-04-01",
"name": "<app-name>/<sidecar-name>",
"properties": {
"image": "<acr-name>.azurecr.io/<image-name>:<version>",
"isMain": false,
"authType": "UserAssigned",
"userManagedIdentityClientId": "<client-id>",
"environmentVariables": [
{ "name": "MY_ENV_VAR", "value": "my-value" }
]
}
}
Önemli
Yalnızca ana kapsayıcı ("isMain": true) dış trafik alır. Linux özel kapsayıcı uygulamanızda sidecar desteği etkinleştirildiğinde, ana kapsayıcınız isMain olarak true şeklinde ayarlanmıştır. Tüm sidecar konteynerleri "isMain": false olmalıdır.
Daha fazla bilgi için bkz. Microsoft. Web siteleri/site kapsayıcıları.
Azure CLI ile sepet oluşturma
az webapp create ile sepet özellikli bir uygulama oluşturun. Örneğin:
az webapp create --name <app-name> --resource-group <group-name> --sitecontainers-app
az webapp sitecontainers create ile bir sidecar konteyner oluşturun. Örneğin:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --container-name <container> --image <image> --target-port <port>
JSON dosyasıyla sepet kapsayıcısı oluşturma:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --sitecontainers-spec-file <file-path>
Tüm sepet komutları için bkz. az webapp sitecontainers.
Ortam değişkenlerini belirleme
Linux uygulamasında tüm kapsayıcılar (ana ve sepetler) ortam değişkenlerini paylaşır. Belirli bir değişkeni bir sidecar için geçersiz kılmak için, onu sidecar'ın yapılandırmasına ekleyin.
- ARM şablonlarında, sidecar'ın özelliklerindeki
environmentVariablesdizisini kullanın. - Portalda kapsayıcı yapılandırma kullanıcı arabirimine ortam değişkenleri ekleyin.
- Ortam değişkenleri, uygulama ayarlarına isimlerine göre referans verebilir; değer, çalışma zamanında çözülür.
Redis sidecar uzantısını ekle
Azure portalından, önbelleğe almak için uygulamanıza bir Redis sepet uzantısı ekleyebilirsiniz. Redis sepet yalnızca hafif önbelleğe alma içindir, Azure Yönetilen Redis'in yerini almaz.
Redis yan arabayı kullanmak için:
- Uygulama kodunuzda Redis bağlantı dizesi
localhost:6379olarak ayarlayın. - Uygulamanızın başlangıç kodunda Redis'i yapılandırın.
- Verileri depolamak ve almak için önbelleğe alma desenlerini kullanın.
- Uygulamanıza erişerek ve önbellek kullanımını onaylamak için günlükleri denetleyerek test edin.
Phi-3/Phi-4 sidecar uzantısını ekleyin
Azure portalından uygulamanıza bir Phi-3 veya Phi-4 sepet uzantısı ekleyerek yapay zeka iş yükleri için yerel çıkarım modeli sağlayabilirsiniz. Uygulamanızın çıkarım gereksinimlerini destekleyen bir fiyatlandırma katmanında olması gerekir. Desteklenmeyen katmanlar için Phi-3/Phi-4 yan araç uzantılarının seçeneklerini görmezsiniz.
- Phi-3/Phi-4 yan sunucu, bir sohbet tamamlama API’si sunar http://localhost:11434/v1/chat/completions.
- Yan araba eklendikten sonra, model yüklemesi nedeniyle başlangıçta yavaş olabilir.
- API'yi çağırmak için, OpenAPI sohbet tamamlama API'sinin stiliyle bu uç noktaya POST istekleri gönderin.
Uçtan uca rehberler için şunlara bkz:
Tutorial: Phi-4 sidecar eklentisi (ASP.NET Core) ile App Service'te sohbet botu çalıştırma - Eğitici Kılavuz: App Service'te Phi-4 sidecar uzantısıyla sohbet botu çalıştırma (Spring Boot)
- Kılavuz: Phi-4 yan araç uzantısıyla (FastAPI) App Service'te sohbet botu çalıştırma
- Öğretici: App Service'te Phi-4 sepet uzantısıyla sohbet botu çalıştırma (Express.js)
Ana kapsayıcıdan veya başka bir sidecar'dan sidecar'a erişim
Yan araç kapsayıcıları, ana kapsayıcıyla aynı ağ hostunu paylaşır. Ana kapsayıcı ve diğer yan arabirimler, localhost:<port> kullanarak herhangi bir yan arabirim üzerindeki bağlantı noktasına ulaşabilir. Örneğin, bir sidecar 4318 numaralı bağlantı noktasını dinliyorsa, ana uygulama ona localhost:4318 adresinden erişebilir.
Portaldaki Bağlantı Noktası alanı yalnızca meta verilerdir ve App Service tarafından yönlendirme için kullanılmaz.
Birim bağlamaları ekleme
Varsayılan olarak, devre dışı bırakılmadığı sürece varsayılan /home birim tüm kapsayıcılara bağlanır. Sidecar konteynerleriniz için ek disk bağlamaları yapılandırabilirsiniz.
Birim bağlamaları, Kalıcı olmayan dosyaları ve dizinleri Web Uygulamanızdaki kapsayıcılar arasında paylaşmanızı sağlar.
- Birim alt yolu: App Service tarafından oluşturulan mantıksal dizin yolu. Aynı alt yola sahip kapsayıcılar dosyaları paylaşır.
- Kapsayıcı bağlama yolu: Birim alt yoluna eşlenen kapsayıcının içindeki dizin yolu.
Örnek yapılandırma:
| Sepet adı | Hacim alt yolu | Kapsayıcı bağlama yolu | Sadece okunabilir |
|---|---|---|---|
| Kapsayıcı1 | /directory1/directory2 | /kapsül1Hacim | Yanlış |
| Kapsayıcı2 | /directory1/directory2 | /container2Vol | Doğru |
| Kapsayıcı3 | /directory1/directory2/directory3 | /container3Vol | Yanlış |
| Kapsayıcı4 | /directory4 | /kapsül1Hacim | Yanlış |
- Eğer Container1
/container1Vol/myfile.txtoluşturursa, Container2/container2Vol/myfile.txtaracılığıyla okuyabilir. - Container1 oluşturursa
/container1Vol/directory3/myfile.txt, Container2 bunu aracılığıyla/container2Vol/directory3/myfile.txtokuyabilir ve Container3 aracılığıyla/container3Vol/myfile.txtokuyabilir/yazabilir. - Container4 diğerleriyle bir hacmi paylaşmıyor.
Uyarı
Kod tabanlı Linux uygulamaları için yerleşik Linux kapsayıcısı birim bağlamalarını kullanamaz.