Öğretici: Azure Uygulaması Hizmeti'nde özel kapsayıcı için sepet kapsayıcısı yapılandırma
Bu öğreticide, Azure Uygulaması Hizmeti'ndeki bir Linux özel kapsayıcı uygulamasına sepet kapsayıcısı olarak bir OpenTelemetry toplayıcısı eklersiniz. Kendi kodunuzu getirme Linux uygulamaları için bkz. Öğretici: Azure Uygulaması Hizmeti'nde Linux uygulaması için sepet kapsayıcısı yapılandırma.
Azure Uygulaması Hizmeti'nde, sepet etkinleştirilmiş her özel kapsayıcı uygulaması için en fazla dokuz sepet kapsayıcısı ekleyebilirsiniz. Sepet kapsayıcıları, ana uygulama kapsayıcınızla sıkı bir şekilde bağlanmalarına gerek kalmadan kapsayıcı uygulamanıza ek hizmetler ve özellikler dağıtmanıza olanak sağlar. Örneğin izleme, günlüğe kaydetme, yapılandırma ve ağ hizmetlerini sepet kapsayıcıları olarak ekleyebilirsiniz. OpenTelemetry toplayıcısı sepet, bu tür bir izleme örneğidir.
App Service'teki yan kapsayıcı hakkında daha fazla bilgi için bkz:
- Linux için Azure Uygulaması Hizmeti için Sepetlere Giriş: Genel Kullanıma Sunuldu
- Azure Uygulaması Hizmetinde sepet genişletilebilirliğinin genel kullanılabilirliğini duyurma
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
1. Gerekli kaynakları ayarlama
İlk olarak öğreticinin kullandığı kaynakları oluşturursunuz. Bu senaryo için kullanılırlar ve genel olarak sepet kapsayıcıları için gerekli değildir.
Azure Cloud Shell'de aşağıdaki komutları çalıştırın:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd env new my-sidecar-env azd provision
İstendiğinde, istediğiniz aboneliği ve bölgeyi sağlayın. Örneğin:
- Abonelik: Aboneliğiniz.
- Bölge: (Avrupa) Batı Avrupa.
Dağıtım tamamlandığında aşağıdaki çıkışı görmeniz gerekir:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Kaynak grubu bağlantısını bir tarayıcı sekmesinde açın. daha sonra bağlantı dizesi kullanmanız gerekir.
Not
azd provision
aşağıdaki Azure kaynaklarını oluşturmak için dahil edilen şablonları kullanır:- My-sidecar-env_group adlı bir kaynak grubu.
-
İki görüntünün dağıtılacağı bir kapsayıcı kayıt defteri:
- OpenTelemetry modülüne sahip bir Nginx görüntüsü.
- Azure İzleyici'ye aktaracak şekilde yapılandırılmış bir OpenTelemetry toplayıcı görüntüsü.
- Log Analytics çalışma alanı
- Application Insights bileşeni
2. Sepet özellikli bir uygulama oluşturma
Kaynak grubunun yönetim sayfasında Oluştur'u seçin.
Web uygulamasını arayın, ardından Oluştur'daaşağı oku seçin ve Web Uygulaması'nı seçin.
Temel Bilgiler panelini aşağıdaki gibi yapılandırın:
- Ad: Benzersiz bir ad
- Yayımla: Kapsayıcı
- İşletim Sistemi: Linux
-
Bölge: Seçtiğiniz bölgeyle aynı bölge
azd provision
- Linux Planı: Yeni bir App Service planı
Kapsayıcı'ya tıklayın. Kapsayıcı panelini aşağıdaki gibi yapılandırın:
- Sepet desteği: Etkin
- Görüntü Kaynağı: Azure Container Registry
-
Kayıt Defteri: Tarafından oluşturulan kayıt defteri
azd provision
- Görüntü: nginx
- Etiket: en son
- Bağlantı noktası: 80
Not
Bu ayarlar sepet etkin uygulamalarda farklı yapılandırılır. Daha fazla bilgi için bkz . Sepet özellikli uygulamalar için farklılıklar.
Gözden Geçir + oluştur’u ve sonra da Oluştur’u seçin.
Dağıtım tamamlandıktan sonra Kaynağa git'i seçin.
Yeni bir tarayıcı sekmesinde, öğesine gidin
https://<app-name>.azurewebsites.net
ve varsayılan Nginx sayfasına bakın.
3. Sepet kapsayıcısı ekleme
Bu bölümde, özel kapsayıcı uygulamanıza bir sepet kapsayıcısı eklersiniz.
Uygulamanın yönetim sayfasında, soldaki menüden Dağıtım Merkezi'ni seçin.
Dağıtım merkezi, uygulamadaki tüm kapsayıcıları gösterir. Şu anda yalnızca ana kapsayıcıya sahiptir.
Ekle'yi seçin ve yeni kapsayıcıyı aşağıdaki gibi yapılandırın:
- Ad: otel-collector
- Görüntü kaynağı: Azure Container Registry
-
Kayıt Defteri: Tarafından oluşturulan kayıt defteri
azd provision
- Görüntü: otel-collector
- Etiket: en son
Uygula’yı seçin.
Şimdi dağıtım merkezinde iki kapsayıcı görmeniz gerekir. Ana kapsayıcı Main olarak işaretlenir ve sepet kapsayıcısı Sepet olarak işaretlenir. Her uygulamanın bir ana kapsayıcısı olmalıdır, ancak birden çok sepet kapsayıcısı olabilir.
4. Ortam değişkenlerini yapılandırma
Örnek senaryo için, otel-collector sepet OpenTelemetry verilerini Azure İzleyici'ye dışarı aktaracak şekilde yapılandırılmıştır, ancak ortam değişkeni olarak bağlantı dizesi gerekir (otel toplayıcı görüntüsü için OpenTelemetry yapılandırma dosyasına bakın).
Uygulama ayarlarını yapılandırarak herhangi bir App Service uygulaması gibi kapsayıcılar için ortam değişkenlerini yapılandırırsınız. Uygulama ayarlarına uygulamadaki tüm kapsayıcılar erişebilir.
Uygulamanın yönetim sayfasında, soldaki menüden Ortam değişkenleri'ni seçin.
Ekle'yi seçerek bir uygulama ayarı ekleyin ve aşağıdaki gibi yapılandırın:
- Ad: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Değer: çıkışındaki
azd provision
bağlantı dizesi. Cloud Shell oturumunu kaybettiyseniz, bunu Application Insight kaynağının Genel Bakış sayfasında, Bağlantı Dizesi'nin altında da bulabilirsiniz.
Uygula'yı, uygula'yı ve ardından Onayla'yı seçin.
Not
Bazı uygulama ayarları sepet etkin uygulamalar için geçerli değildir. Daha fazla bilgi için bkz . Sepet özellikli uygulamalar için farklılıklar
5. Application Insights'ta doğrulama
Otel toplayıcısı sepet, verileri application insights'a aktarmalıdır.
için tarayıcı sekmesine geri dönün ve birkaç web isteği oluşturmak için
https://<app-name>.azurewebsites.net
sayfayı birkaç kez yenileyin.Kaynak grubuna genel bakış sayfasına dönün ve Application Insights kaynağını seçin. Şimdi varsayılan grafiklerde bazı veriler görmeniz gerekir.
Not
Bu çok yaygın izleme senaryosunda Application Insights, Jaeger, Prometheus ve Zipkin gibi kullanabileceğiniz OpenTelemetry hedeflerinden yalnızca biridir.
Kaynakları temizleme
Ortama artık ihtiyacınız kalmadığında kaynak grubunu, App service'i ve tüm ilgili kaynakları silebilirsiniz. Bu komutu Cloud Shell'de, kopyalanan depoda çalıştırmanız gerekir:
azd down
Sepet kapsayıcıları iç iletişimi nasıl işler?
Sepet kapsayıcıları ana kapsayıcıyla aynı ağ konağını paylaşır, bu nedenle ana kapsayıcı (ve diğer sepet kapsayıcıları) ile localhost:<port>
sepet üzerindeki herhangi bir bağlantı noktasına ulaşabilir. Nginx kapsayıcısı sepete tam olarak bu şekilde veri gönderir (örnek Nginx görüntüsü için OpenTelemetry modülü yapılandırmasına bakın).
Kapsayıcıyı düzenle iletişim kutusunda, Bağlantı Noktası kutusu şu anda App Service tarafından kullanılmaz. Sepet meta verilerinin bir parçası olarak kullanabilirsiniz. Örneğin, sepette hangi bağlantı noktasını dinlediğini belirtebilirsiniz.
Sepet özellikli uygulamalar için farklılıklar
Sepet özellikli uygulamaları sepet etkin olmayan uygulamalardan farklı yapılandırabilirsiniz. Özellikle, ana kapsayıcıyı ve sepetleri uygulama ayarlarıyla değil, doğrudan kaynak özelliklerinde yapılandırırsınız. Bu uygulama ayarları sepet etkin uygulamalar için geçerli değildir:
- Kayıt defteri kimlik doğrulama ayarları:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_USERNAME
veDOCKER_REGISTRY_SERVER_PASSWORD
. - Kapsayıcı bağlantı noktası:
WEBSITES_PORT