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.
Upozornění
Tento článek odkazuje na CentOS, což je linuxová distribuce se stavem Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.
Poznámka:
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Plán Standardní spotřeba a vyhrazený plán vstoupily do fáze vyřazování dne 30. září 2024 s úplným vypnutím do konce března 2025. Další informace najdete v tématu Migrace spotřebního plánu a vyhrazeného plánu úroveň Standard pro Azure Spring Apps do Azure Container Apps.
Tento článek se vztahuje na:✅ Standard ✅ Enterprise
Tento článek vysvětluje, jak nasadit aplikace Spring Boot v Azure Spring Apps pomocí vlastní image kontejneru. Nasazení aplikace s vlastním kontejnerem podporuje většinu funkcí jako při nasazování aplikace JAR. S imagí kontejneru je možné nasadit i jiné aplikace v Javě a jiných aplikacích než Java.
Požadavky
- Image kontejneru obsahující aplikaci.
- Obraz je nahrán do registru obrázků. Další informace najdete v tématu Azure Container Registry.
Poznámka:
Webová aplikace musí naslouchat na portu 1025
pro plán Standard a na portu 8080
pro plán Enterprise. Způsob, jak změnit port, závisí na rozhraní aplikace. Zadejte například SERVER_PORT=1025
aplikace Spring Boot nebo ASPNETCORE_URLS=http://+:1025/
pro aplikace ASP.NET Core. Sondu můžete zakázat pro aplikace, které na žádném portu nenaslouchají. Další informace najdete v Konfigurace sond stavu a období odkladu ukončení pro aplikace hostované v Azure Spring Apps.
Nasazení aplikace
Pokud chcete nasadit aplikaci do vlastní image kontejneru, postupujte následovně:
K nasazení image kontejneru použijte jeden z následujících příkazů:
Pokud chcete nasadit image kontejneru do veřejného Docker Hubu do aplikace, použijte následující příkaz:
az spring app deploy \ --resource-group <your-resource-group> \ --name <your-app-name> \ --container-image <your-container-image> \ --service <your-service-name>
K nasazení image kontejneru z ACR do aplikace nebo z jiného privátního registru do aplikace použijte následující příkaz:
az spring app deploy \ --resource-group <your-resource-group> \ --name <your-app-name> \ --container-image <your-container-image> \ --service <your-service-name> --container-registry <your-container-registry> \ --registry-password <your-password> | --registry-username <your-username>
Pokud chcete přepsat vstupní bod obrázku, přidejte do některého z výše uvedených příkazů následující dva argumenty:
--container-command "java" \
--container-args "-jar /app.jar -Dkey=value"
Chcete-li zakázat naslouchání na portu pro obrazy, které nejsou webovými aplikacemi, přidejte do výše uvedených příkazů následující argument:
--disable-probe true
Matice podpory funkcí
Následující matice ukazuje, jaké funkce jsou podporovány v jednotlivých typech aplikací.
Funkce | Spring Boot Apps – nasazení kontejneru | Polyglot Apps – nasazení kontejneru | Poznámky |
---|---|---|---|
Správa životního cyklu aplikací | ✅ | ✅ | |
Podpora registrů kontejnerů | ✅ | ✅ | |
Přiřadit koncový bod | ✅ | ✅ | |
Azure Monitor | ✅ | ✅ | |
Integrace APM | ✅ | ✅ | Podporováno ruční instalací. |
Modré/zelené nasazení | ✅ | ✅ | |
Vlastní doména | ✅ | ✅ | |
Škálování – automatické škálování | ✅ | ✅ | |
Škálování – manuální škálování (zvětšení/zmenšení, nahoru/dolů) | ✅ | ✅ | |
Spravovaná identita | ✅ | ✅ | |
Spring Cloud Eureka & Config Server | ✅ | ❎ | |
Portál API pro VMware Tanzu | ✅ | ✅ | Pouze Enterprise plán. |
Brána Spring Cloud pro VMware Tanzu | ✅ | ✅ | Pouze plán Enterprise. |
Služba konfigurace aplikací pro VMware Tanzu | ✅ | ❎ | Pouze Enterprise plán. |
Živé zobrazení aplikace pro VMware Tanzu | ✅ | ❎ | Jenom plán Enterprise. |
Registr služeb VMware Tanzu | ✅ | ❎ | Pouze plán Enterprise. |
VNET | ✅ | ✅ | Přidejte registr pro seznam povolených ve skupině zabezpečení sítě nebo bráně Azure Firewall. |
Odchozí IP adresa | ✅ | ✅ | |
E2E TLS | ✅ | ✅ | Důvěřovat samopodepsané certifikační autoritě. |
Nastavení živosti a připravenosti | ✅ | ✅ | |
Pokročilé řešení potíží – výpis stavu vlákna, haldy nebo JFR | ✅ | ❎ | Image musí obsahovat Bash a sadu JDK se zadaným souborem PATH . |
Přineste si vlastní úložiště | ✅ | ✅ | |
Integrace napojení služby se zdrojovým konektorem | ✅ | ❎ | |
Zóna dostupnosti | ✅ | ✅ | |
Události životního cyklu aplikace | ✅ | ✅ | |
Zmenšená velikost aplikace – 0,5 vCPU a 512 MB | ✅ | ✅ | |
Automatizace nasazení aplikací pomocí Terraformu | ✅ | ✅ | |
Dočasné odstranění | ✅ | ✅ | |
Interaktivní diagnostické prostředí (založené na AppLens) | ✅ | ✅ | |
Smlouva o úrovni poskytovaných služeb (SLA) | ✅ | ✅ |
Poznámka:
Polyglotní aplikace zahrnují aplikace mimo Spring Boot Java, NodeJS, AngularJS, Python a .NET.
Běžné body, o které je potřeba vědět při nasazování s využitím vlastního kontejneru
Následující body vám pomůžou řešit běžné situace při nasazování s vlastní imagí.
Důvěřovat certifikační autoritě
Existují dvě možnosti, jak důvěřovat certifikační autoritě:
Možnost 1: Nahrání přes Azure Spring Apps
Pokud chcete do svých aplikací načíst certifikáty certifikační autority, přečtěte si téma Použití certifikátů TLS/SSL ve vaší aplikaci v Azure Spring Apps. Pak se certifikáty připojí do umístění /etc/azure-spring-cloud/certs/public/.
Možnost 2: Ruční instalace v obrazu
Aby bylo možné důvěřovat certifikační autoritě v imagu, nastavte následující proměnné v závislosti na vašem prostředí:
Aplikace Java musíte importovat do úložiště důvěryhodnosti přidáním následujících řádků do souboru Dockerfile:
ADD EnterpriseRootCA.crt /opt/ RUN keytool -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias EnterpriseRootCA -file /opt/EnterpriseRootCA.crt
Pro Node.js aplikace nastavte proměnnou
NODE_EXTRA_CA_CERTS
prostředí:ADD EnterpriseRootCA.crt /opt/ ENV NODE_EXTRA_CA_CERTS="/opt/EnterpriseRootCA.crt"
V případě Pythonu nebo jiných jazyků závislých na systémovém úložišti certifikační autority na imagích Debianu nebo Ubuntu přidejte následující proměnné prostředí:
ADD EnterpriseRootCA.crt /usr/local/share/ca-certificates/ RUN /usr/sbin/update-ca-certificates
V případě Pythonu nebo jiných jazyků závislých na systémovém úložišti certifikační autority přidejte na imagích založených na CentOS nebo Fedora následující proměnné prostředí:
ADD EnterpriseRootCA.crt /etc/pki/ca-trust/source/anchors/ RUN /usr/bin/update-ca-trust
Vyhněte se neočekávanému chování při změně obrázků
Po restartování nebo horizontálním navýšení kapacity aplikace se vždy stáhne nejnovější obraz. Pokud byla image změněna, nově spuštěné instance aplikace budou používat novou image, zatímco staré instance budou nadále používat starou image.
Poznámka:
Vyhněte se použití značky latest
nebo přepisu obrázku bez změny značky, abyste se vyhnuli neočekávanému chování aplikace.
Vyhněte se nemožnosti připojit se k registru kontejneru ve virtuální síti
Pokud jste instanci nasadili do virtuální sítě, ujistěte se, že povolíte síťový provoz do registru kontejneru ve skupině zabezpečení sítě nebo bráně Azure Firewall (pokud se používá). Pro více informací se podívejte na Odpovědnost zákazníka za spuštění ve virtuální síti, abychom mohli přidat potřebná pravidla zabezpečení.
Nainstalujte ručně APM do obrazu.
Postup instalace se liší v různých monitorováních výkonu aplikací (APM) a jazycích. Následující kroky jsou určené pro New Relic s aplikacemi v Javě. Soubor Dockerfile musíte upravit pomocí následujícího postupu:
Stáhněte a nainstalujte do image soubor agenta přidáním následujícího souboru do souboru Dockerfile:
ADD newrelic-agent.jar /opt/agents/newrelic/java/newrelic-agent.jar
Přidejte proměnné prostředí vyžadované APM:
ENV NEW_RELIC_APP_NAME=appName ENV NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
Upravte vstupní bod obrázku přidáním:
java -javaagent:/opt/agents/newrelic/java/newrelic-agent.jar
Pokud chcete nainstalovat agenty pro jiné jazyky, projděte si oficiální dokumentaci ostatních agentů:
New Relic:
- Python: Instalace agenta Pythonu
- Node.js: Instalace agenta Node.js
Dynatrace:
- Python: Instrumentace aplikací v Pythonu pomocí OpenTelemetry
- Node.js: Instrumentace aplikací Node.js pomocí OpenTelemetry
AppDynamics:
- Python: Instalace agenta Pythonu
- Node.js: Instalace agenta Node.js
Zobrazení protokolů kontejneru
Pokud chcete zobrazit protokoly konzoly vaší aplikace kontejneru, můžete použít následující příkaz rozhraní příkazového řádku:
az spring app logs \
--resource-group <your-resource-group> \
--name <your-app-name> \
--service <your-service-name> \
--instance <your-instance-name>
Pokud chcete zobrazit protokoly událostí kontejneru ze služby Azure Monitor, zadejte dotaz:
AppPlatformContainerEventLogs
| where App == "hw-20220317-1b"
Prohledejte svou image na zranitelnosti
Doporučujeme používat Microsoft Defender for Cloud s ACR, abyste zabránili ohrožení vašich imagí. Další informace najdete v programu Microsoft Defender for Cloud.
Přepínání mezi nasazením JAR a nasazením kontejneru
Typ nasazení můžete přepnout z nasazení JAR na nasazení kontejneru přímo opětovným nasazením pomocí následujícího příkazu:
az spring app deploy \
--resource-group <your-resource-group> \
--name <your-app-name> \
--container-image <your-container-image> \
--service <your-service-name>
Nebo obráceně:
az spring app deploy \
--resource-group <your-resource-group> \
--name <your-app-name> \
--artifact-path <your-jar-file> \
--service <your-service-name>
Vytvořte další nasazení se stávajícím nasazením JAR
Pomocí existujícího nasazení JAR můžete vytvořit jiné nasazení pomocí následujícího příkazu:
az spring app deployment create \
--resource-group <your-resource-group> \
--name <your-deployment-name> \
--app <your-app-name> \
--container-image <your-container-image> \
--service <your-service-name>
CI/CD
Automatizace nasazení pomocí úloh Azure Pipelines nebo GitHub Actions se teď podporuje. Další informace najdete v tématu Automatizace nasazení aplikací do Azure Spring Apps a použití CI/CD služby Azure Spring Apps s GitHub Actions.