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 tutorial ini, Anda mengonfigurasi agen Java Application Performance Management (APM) dengan kontainer init di Azure Container Apps. APM membantu pengamatan daya untuk aplikasi kontainer Anda. Anda dapat mengemas plugin APM dalam gambar yang sama atau Dockerfile dengan aplikasi Anda, tetapi mengikat bersama-sama masalah manajemen, seperti rilis dan mitigasi Common Vulnerabilities and Exposures (CVE). Daripada mengikat kekhawatiran bersama-sama, Anda dapat menggunakan agen Java dan kontainer init di Azure Container Apps untuk menyuntikkan solusi APM tanpa memodifikasi gambar aplikasi Anda.
Di tutorial ini, Anda akan:
- Siapkan gambar untuk menyiapkan agen Java dan mendorongnya ke Azure Container Registry.
- Buat lingkungan Aplikasi Kontainer dan aplikasi kontainer sebagai aplikasi Java target.
- Konfigurasikan kontainer init dan pemasangan volume untuk menyiapkan integrasi Application Insights.
Prasyarat
- Langganan Azure. Buat satu secara gratis..
- Instans Application Insights.
- Instans Azure Container Registry atau registri gambar kontainer lainnya.
- Docker, untuk membangun gambar.
- Versi terbaru Azure CLI.
Menyiapkan lingkungan
Gunakan langkah-langkah berikut untuk menentukan variabel lingkungan dan memastikan ekstensi Container Apps Anda sudah diperbarui:
Tentukan variabel lingkungan dengan menggunakan perintah berikut:
export SUBSCRIPTION_ID="<SUBSCRIPTION_ID>" # Replace with your own Azure subscription ID export APP_INSIGHTS_RESOURCE_ID="/subscriptions/$SUBSCRIPTION_ID/resourceGroups/my-resource-group/providers/microsoft.insights/components/my-app-insights" export CONTAINER_REGISTRY_NAME="myacr" export RESOURCE_GROUP="my-resource-group" export ENVIRONMENT_NAME="my-environment" export CONTAINER_APP_NAME="my-container-app" export LOCATION="eastus"Masuk ke Azure CLI dengan menggunakan perintah berikut:
az login az account set --subscription $SUBSCRIPTION_IDGunakan perintah berikut untuk memastikan bahwa Anda memiliki versi terbaru ekstensi Azure CLI untuk Container Apps dan Application Insights:
az extension add --name containerapp --upgrade az extension add --name application-insights --upgradeAmbil string koneksi untuk instans Application Insights Anda dengan menggunakan perintah berikut:
CONNECTION_STRING=$(az monitor app-insights component show \ --ids $APP_INSIGHTS_RESOURCE_ID \ --query connectionString)
Menyiapkan gambar kontainer
Untuk membangun gambar penyiapan untuk agen Application Insights Java, gunakan langkah-langkah berikut dalam direktori yang sama:
Buat Dockerfile dengan konten berikut:
FROM mcr.microsoft.com/cbl-mariner/base/core:2.0 ARG version="3.5.4" RUN tdnf update -y && tdnf install -y curl ca-certificates RUN curl -L "https://github.com/microsoft/ApplicationInsights-Java/releases/download/${version}/applicationinsights-agent-${version}.jar" > agent.jar ADD setup.sh /setup.sh ENTRYPOINT ["/bin/sh", "setup.sh"]Buat file setup.sh dengan konten berikut:
#!/bin/sh if [[ -z "$CONNECTION_STRING" ]]; then echo "Environment variable CONNECTION_STRING is not found. Exiting..." exit 1 else echo "{\"connectionString\": \"$CONNECTION_STRING\"}" > /java-agent/applicationinsights.json cp agent.jar /java-agent/agent.jar fiBuat gambar dengan menggunakan perintah berikut:
docker build . --tag "$CONTAINER_REGISTRY_NAME.azurecr.io/samples/java-agent-setup:1.0.0"Dorong gambar ke Azure Container Registry atau registri gambar kontainer lain dengan menggunakan perintah berikut:
az acr login --name $CONTAINER_REGISTRY_NAME docker push "$CONTAINER_REGISTRY_NAME.azurecr.io/samples/java-agent-setup:1.0.0"
Petunjuk / Saran
Anda dapat menemukan kode yang relevan dengan langkah ini di repositori GitHub azure-container-apps-java-samples .
Membuat lingkungan Container Apps dan aplikasi kontainer sebagai aplikasi Java target
Untuk membuat lingkungan Container Apps dan aplikasi kontainer sebagai aplikasi Java target, gunakan langkah-langkah berikut:
Buat lingkungan Container Apps dengan menggunakan perintah berikut:
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"Setelah Anda berhasil membuat lingkungan Container Apps, baris perintah mengembalikan pesan
Succeeded.Buat aplikasi kontainer untuk konfigurasi lebih lanjut dengan menggunakan perintah berikut:
az containerapp create \ --name $CONTAINER_APP_NAME \ --environment $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --query "properties.provisioningState"Setelah Anda membuat aplikasi kontainer, baris perintah mengembalikan pesan
Succeeded.
Mengonfigurasi kontainer init, rahasia, variabel lingkungan, dan volume untuk menyiapkan integrasi Application Insights
Gunakan langkah-langkah berikut untuk mengonfigurasi kontainer init Anda dengan rahasia, variabel lingkungan, dan volume. Konfigurasi ini memungkinkan Anda menggunakan informasi tersimpan dengan instans Application Insights Anda.
Tulis konfigurasi aplikasi kontainer yang sedang berjalan saat ini ke file app.yaml di direktori saat ini, dengan menggunakan perintah berikut:
az containerapp show \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_NAME \ --output yaml \ > app.yamlGunakan langkah-langkah berikut untuk mengedit file app.yaml Anda. Pengeditan menambahkan rahasia, penyimpanan ephemeral, dan kontainer init ke file, dan memperbarui kontainer aplikasi.
Tambahkan rahasia untuk string koneksi Application Insights dengan menggunakan contoh berikut. Ganti
$CONNECTION_STRINGdengan string koneksi Application Insights Anda.properties: configuration: secrets: - name: app-insights-connection-string value: $CONNECTION_STRINGTambahkan volume penyimpanan sementara untuk file agen Java dengan menggunakan contoh berikut:
properties: template: volumes: - name: java-agent-volume storageType: EmptyDirTambahkan kontainer init dengan pemasangan volume dan variabel lingkungan dengan menggunakan contoh berikut. Ganti
<CONTAINER_REGISTRY_NAME>dengan nama Azure Container Registry Anda.properties: template: initContainers: - image: <CONTAINER_REGISTRY_NAME>.azurecr.io/samples/java-agent-setup:1.0.0 name: java-agent-setup resources: cpu: 0.25 memory: 0.5Gi env: - name: CONNECTION_STRING secretRef: app-insights-connection-string volumeMounts: - mountPath: /java-agent volumeName: java-agent-volumePerbarui kontainer aplikasi dengan pemasangan volume dan variabel lingkungan dengan menggunakan contoh berikut:
properties: template: containers: - name: test-java-app image: mcr.microsoft.com/azurespringapps/samples/hello-world:0.0.1 resources: cpu: 0.5 memory: 1Gi env: - name: JAVA_TOOL_OPTIONS value: -javaagent:/java-agent/agent.jar volumeMounts: - mountPath: /java-agent volumeName: java-agent-volume
Perbarui aplikasi kontainer dengan file app.yaml yang dimodifikasi dengan menggunakan perintah berikut:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_NAME \ --yaml app.yaml \ --query "properties.provisioningState"Setelah Anda memperbarui aplikasi kontainer, perintah mengembalikan
Succeededpesan. Sekarang Anda dapat memverifikasi bahwa aplikasi kontainer Anda terhubung, dengan melihat instans Application Insights Anda di portal Azure.
Membersihkan sumber daya
Sumber daya yang Anda buat dalam tutorial ini berkontribusi pada tagihan Azure Anda. Jika Anda tidak memerlukannya dalam jangka panjang, gunakan perintah berikut untuk menghapus grup sumber daya dan sumber dayanya:
az group delete --resource-group $RESOURCE_GROUP
Konten terkait
Selain Azure Application Insights, ada solusi APM populer lainnya di komunitas. Jika Anda ingin mengintegrasikan Azure Container App dengan penyedia APM lainnya, cukup ganti JAR agen Java dan file konfigurasi terkait.