Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu nakonfigurujete agenta Java pro správu výkonu aplikací (APM) s inicializačními kontejnery v Azure Container Apps. APM pomáhá zlepšit pozorovatelnost pro vaše kontejnerové aplikace. Modul plug-in APM můžete zabalit do stejné image nebo souboru Dockerfile s vaší aplikací, ale spojuje obavy týkající se správy, jako je zmírnění rizik vydaných verzí a běžných ohrožení zabezpečení a ohrožení zabezpečení (CVE). Místo vazby na obavy můžete použít agenta Java a inicializační kontejnery v Azure Container Apps k vložení řešení APM beze změny image aplikace.
V tomto kurzu se naučíte:
- Připravte image pro nastavení agenta Javy a nasdílení změn do služby Azure Container Registry.
- Vytvořte prostředí Container Apps a aplikaci typu kontejner jako cílovou aplikaci v Javě.
- Nakonfigurujte inicializační kontejnery a připojení svazků pro nastavení integrace Application Insights.
Požadavky
- Předplatné Azure. Vytvořte si ho zdarma.
- Instance Application Insights.
- Instance služby Azure Container Registry nebo jiného registru imagí kontejneru.
- Docker, sestavte image.
- Nejnovější verze Azure CLI.
Nastavení prostředí
Pomocí následujících kroků definujte proměnné prostředí a ujistěte se, že je vaše rozšíření Container Apps aktuální:
Definujte proměnné prostředí pomocí následujících příkazů:
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"Přihlaste se k Azure CLI pomocí následujících příkazů:
az login az account set --subscription $SUBSCRIPTION_IDPomocí následujících příkazů se ujistěte, že máte nejnovější verzi rozšíření Azure CLI pro Container Apps a Application Insights:
az extension add --name containerapp --upgrade az extension add --name application-insights --upgradePomocí následujících příkazů načtěte připojovací řetězec instance Application Insights:
CONNECTION_STRING=$(az monitor app-insights component show \ --ids $APP_INSIGHTS_RESOURCE_ID \ --query connectionString)
Příprava image kontejneru
Pokud chcete vytvořit image nastavení pro agenta Java Application Insights, použijte následující kroky ve stejném adresáři:
Vytvořte soubor Dockerfile s následujícím obsahem:
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"]Vytvořte soubor setup.sh s následujícím obsahem:
#!/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 fiVytvořte image pomocí následujícího příkazu:
docker build . --tag "$CONTAINER_REGISTRY_NAME.azurecr.io/samples/java-agent-setup:1.0.0"Nasdílení image do služby Azure Container Registry nebo jiného registru imagí kontejneru pomocí následujících příkazů:
az acr login --name $CONTAINER_REGISTRY_NAME docker push "$CONTAINER_REGISTRY_NAME.azurecr.io/samples/java-agent-setup:1.0.0"
Návod
Kód, který je pro tento krok relevantní, najdete v úložišti GitHubu azure-container-apps-java-samples .
Vytvoření prostředí Container Apps a aplikace typu kontejner jako cílová aplikace v Javě
Pokud chcete vytvořit prostředí Container Apps a aplikaci typu kontejner jako cílovou aplikaci v Javě, postupujte následovně:
Pomocí následujícího příkazu vytvořte prostředí Container Apps:
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"Po úspěšném vytvoření prostředí Container Apps vrátí
Succeededpříkazový řádek zprávu.Pomocí následujícího příkazu vytvořte aplikaci kontejneru pro další konfiguraci:
az containerapp create \ --name $CONTAINER_APP_NAME \ --environment $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --query "properties.provisioningState"Po vytvoření aplikace kontejneru vrátí
Succeededpříkazový řádek zprávu.
Konfigurace inicializačního kontejneru, tajných kódů, proměnných prostředí a svazků pro nastavení integrace Application Insights
Pomocí následujících kroků nakonfigurujte inicializační kontejner s tajnými kódy, proměnnými prostředí a svazky. Tato konfigurace umožňuje používat uložené informace s vaší instancí Application Insights.
Pomocí následujícího příkazu napište aktuální konfiguraci spuštěné aplikace kontejneru do souboru app.yaml v aktuálním adresáři:
az containerapp show \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_NAME \ --output yaml \ > app.yamlK úpravě souboru app.yaml použijte následující postup. Úpravy přidávají do souboru tajné kódy, dočasné úložiště a inicializační kontejner a aktualizují kontejner aplikace.
Přidejte tajný kód pro připojovací řetězec Application Insights pomocí následujícího příkladu. Nahraďte
$CONNECTION_STRINGpřipojovací řetězec Application Insights.properties: configuration: secrets: - name: app-insights-connection-string value: $CONNECTION_STRINGPřidejte dočasný svazek úložiště pro soubory agenta Java pomocí následujícího příkladu:
properties: template: volumes: - name: java-agent-volume storageType: EmptyDirPřidejte inicializační kontejner s připojeními svazků a proměnnými prostředí pomocí následujícího příkladu. Nahraďte
<CONTAINER_REGISTRY_NAME>názvem služby Azure Container Registry.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-volumePomocí následujícího příkladu aktualizujte kontejner aplikace pomocí připojení svazků a proměnných prostředí:
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
Aktualizujte aplikaci kontejneru pomocí upraveného souboru app.yaml pomocí následujícího příkazu:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_NAME \ --yaml app.yaml \ --query "properties.provisioningState"Po aktualizaci aplikace kontejneru příkaz vrátí
Succeededzprávu. Teď můžete ověřit, že je vaše aplikace kontejneru připojená, zobrazením instance Application Insights na webu Azure Portal.
Vyčištění prostředků
Prostředky, které jste vytvořili v tomto kurzu, přispívají k faktuře za Azure. Pokud je nepotřebujete dlouhodobě, pomocí následujícího příkazu odeberte skupinu prostředků a její prostředky:
az group delete --resource-group $RESOURCE_GROUP
Související obsah
Kromě Aplikace Azure lication Insights jsou v komunitě k dispozici další oblíbená řešení APM. Pokud chcete integrovat vaši aplikaci Azure Container App s jinými poskytovateli APM, stačí nahradit soubor JAR agenta Java a související konfigurační soubory.