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.
Tento článek ukazuje, jak nakonfigurovat zdroje dat v aplikaci Java SE, Tomcat nebo JBoss ve službě App Service.
Služba Azure App Service provozuje webové aplikace Java na plně spravovanou službou ve třech verzích.
- Java Standard Edition (SE): Může spustit aplikaci nasazenou jako balíček Java Archive (JAR), který obsahuje vložený server (například Spring Boot, Quarkus, Dropwizard nebo aplikaci s vloženým serverem Tomcat nebo Jetty).
- Tomcat: Integrovaný server Tomcat může spustit aplikaci nasazenou jako balíček archivu webových aplikací (WAR).
- JBoss Enterprise Application Platform (EAP): Integrovaný server JBoss EAP může spustit aplikaci nasazenou jako balíček WAR nebo enterprise archive (EAR). Podporováno pro aplikace pro Linux v sadě cenových úrovní, které zahrnují Free, Premium v3 a Isolated v2.gti.
Poznámka:
JBoss EAP ve službě App Service teď podporuje fakturaci byOL (Bring Your Own License), což zákazníkům se stávajícími předplatnými Red Hat umožňuje použít tyto licence přímo na nasazení EAP JBoss ve službě Azure App Service. Další informace.
Konfigurace zdroje dat
Pokud se chcete připojit ke zdrojům dat v aplikacích Spring Boot, doporučujeme vytvořit připojovací řetězce a vložit je do souboru application.properties .
V části Konfigurace na stránce služby App Service nastavte název řetězce, vložte připojovací řetězec JDBC do pole hodnoty a nastavte typ na Vlastní. Volitelně můžete tento připojovací řetězec nastavit jako slotové nastavení.
Tento připojovací řetězec je pro naši aplikaci přístupný jako proměnná prostředí s názvem
CUSTOMCONNSTR_<your-string-name>. NapříkladCUSTOMCONNSTR_exampledb.V souboru application.properties odkazujte na tento připojovací řetězec pomocí názvu proměnné prostředí. V našem příkladu bychom použili následující kód:
app.datasource.url=${CUSTOMCONNSTR_exampledb}
Další informace najdete v dokumentaci Spring Bootu k přístupu k datům a externalizovaným konfiguracím.
Návod
Kontejnery Tomcat pro Linux mohou automaticky konfigurovat sdílené zdroje dat pro vás na serveru Tomcat nastavením proměnné WEBSITE_AUTOCONFIGURE_DATABASE prostředí na true. Jediné, co je potřeba udělat, je přidat nastavení aplikace, které obsahuje platný připojovací řetězec JDBC k databázi Oracle, SQL Server, PostgreSQL nebo MySQL (včetně přihlašovacích údajů pro připojení) a App Service automaticky přidá odpovídající sdílenou databázi do /usr/local/tomcat/conf/context.xmlpomocí příslušného ovladače dostupného v kontejneru. Kompletní scénář, který používá tento přístup, najdete v tématu Kurz: Vytvoření webové aplikace Tomcat se službou Azure App Service v Linuxu a MySQL.
Tyto pokyny platí pro všechna připojení k databázi. Zástupné symboly musíte vyplnit názvem třídy ovladače zvolené databáze a souborem JAR. Poskytuje se tabulka s názvy tříd a stahováním ovladačů pro běžné databáze.
| Databáze | Název třídy ovladače | Ovladač JDBC |
|---|---|---|
| PostgreSQL | org.postgresql.Driver |
Stáhnout |
| MySQL | com.mysql.jdbc.Driver |
Stáhnout (vybrat nezávislou platformu) |
| SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDriver |
Stáhnout |
Pokud chcete nakonfigurovat Tomcat tak, aby používala připojení k databázi Java (JDBC) nebo rozhraní JPA (Java Persistence API), nejprve při spuštění přizpůsobte CATALINA_OPTS proměnnou prostředí, která je načtena tomcatem. Nastavte tyto hodnoty prostřednictvím nastavení aplikace v modulu plug-in App Service Maven:
<appSettings>
<property>
<name>CATALINA_OPTS</name>
<value>"$CATALINA_OPTS -Ddbuser=${DBUSER} -Ddbpassword=${DBPASSWORD} -DconnURL=${CONNURL}"</value>
</property>
</appSettings>
Nebo nastavte proměnné prostředí na stránce Konfigurace>Nastavení aplikace v portálu Azure.
Dále určete, jestli má být zdroj dat dostupný pro jednu aplikaci nebo pro všechny aplikace spuštěné na servletu Tomcat.
Zdroje dat na úrovni aplikace
Konfigurace zdroje dat na úrovni aplikace:
V adresáři META-INF/ projektu vytvořte soubor context.xml. Pokud neexistuje, vytvořte adresář META-INF/ .
V context.xmlpřidejte
Contextprvek pro propojení zdroje dat s adresou JNDI. Nahraďte zástupný symboldriverClassNamenázvem třídy vašeho ovladače z výše uvedené tabulky.<Context> <Resource name="jdbc/dbconnection" type="javax.sql.DataSource" url="${connURL}" driverClassName="<insert your driver class name>" username="${dbuser}" password="${dbpassword}" /> </Context>Aktualizujte v aplikaci položku web.xml k použití zdroje dat ve vaší aplikaci.
<resource-env-ref> <resource-env-ref-name>jdbc/dbconnection</resource-env-ref-name> <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> </resource-env-ref>
Sdílené prostředky na úrovni serveru
Návod
Kontejnery Tomcat pro Linux mohou automaticky použít soubory XSLT pomocí následující konvence pro soubory zkopírované do /home/site/wwwroot: Pokud jsou server.xml.xsl nebo server.xml.xslt k dispozici, budou použity na Tomcatův server.xml. Pokud jsou přítomny context.xml.xsl nebo context.xml.xslt, budou aplikovány na Tomcat's context.xml.
Přidání sdíleného zdroje dat na úrovni serveru vyžaduje, abyste upravili soubor Tomcat.server.xml Vzhledem k tomu, že změny souborů mimo /home adresář jsou dočasné, je třeba změny konfiguračních souborů Tomcat použít programově, a to následujícím způsobem:
- Nahrajte spouštěcí skript a nastavte cestu ke skriptu v>konfiguračním spouštěcím příkazu. Spouštěcí skript můžete nahrát pomocí ftp.
Spouštěcí skript provede transformaci XSL do server.xml souboru a výstup výsledného souboru XML do /usr/local/tomcat/conf/server.xml. Spouštěcí skript by se měl nainstalovat libxslt nebo xlstproc v závislosti na distribuci verze Tomcat vaší webové aplikace. Váš soubor XSL a spouštěcí skript se dají nahrát přes FTP. Níže je uveden příklad spouštěcího skriptu.
# Install the libxslt package on Alpine-based images:
apk add --update libxslt
# Install the xsltproc package on Debian or Ubuntu-based images:
apt install xsltproc
# Also copy the transform file to /home/tomcat/conf/
# Usage: xsltproc --output output.xml style.xsl input.xml
xsltproc --output /home/tomcat/conf/server.xml /home/tomcat/conf/transform.xsl /usr/local/tomcat/conf/server.xml
Následující příklad souboru XSL přidá nový uzel konektoru do tomcat server.xml.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()" name="Copy">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()" mode="insertConnector">
<xsl:call-template name="Copy" />
</xsl:template>
<xsl:template match="comment()[not(../Connector[@scheme = 'https']) and
contains(., '<Connector') and
(contains(., 'scheme="https"') or
contains(., "scheme='https'"))]">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:template>
<xsl:template match="Service[not(Connector[@scheme = 'https'] or
comment()[contains(., '<Connector') and
(contains(., 'scheme="https"') or
contains(., "scheme='https'"))]
)]
">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="insertConnector" />
</xsl:copy>
</xsl:template>
<!-- Add the new connector after the last existing Connector if there's one -->
<xsl:template match="Connector[last()]" mode="insertConnector">
<xsl:call-template name="Copy" />
<xsl:call-template name="AddConnector" />
</xsl:template>
<!-- ... or before the first Engine if there's no existing Connector -->
<xsl:template match="Engine[1][not(preceding-sibling::Connector)]"
mode="insertConnector">
<xsl:call-template name="AddConnector" />
<xsl:call-template name="Copy" />
</xsl:template>
<xsl:template name="AddConnector">
<!-- Add new line -->
<xsl:text>
</xsl:text>
<!-- This is the new connector -->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="${{user.home}}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
</xsl:template>
</xsl:stylesheet>
Dokončení konfigurace
Nakonec umístěte soubor JAR ovladačů do classpathu Tomcat a restartujte App Service.
- Ujistěte se, že soubory ovladačů JDBC jsou k dispozici pro zavaděč tříd Tomcat jejich umístěním do adresáře /home/site/lib . V Cloud Shellu spusťte
az webapp deploy --type=libpro každý soubor JAR ovladače:
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <jar-name>.jar --type=lib --path <jar-name>.jar
Pokud jste vytvořili zdroj dat na úrovni serveru, restartujte aplikaci App Service Pro Linux. Tomcat resetuje CATALINA_BASE na /home/tomcat a používá aktualizovanou konfiguraci.
Návod
Kontejnery JBoss pro Linux můžou ve výchozím nastavení automaticky konfigurovat sdílené zdroje dat na serveru JBoss. Jediné, co je potřeba udělat, je přidat nastavení aplikace, které obsahuje platný připojovací řetězec JDBC k databázi Oracle, SQL Server, PostgreSQL nebo MySQL (včetně přihlašovacích údajů připojení) a přidat nastavení aplikace / prostředí proměnnou WEBSITE_AUTOCONFIGURE_DATABASE s hodnotou true. Podporují se také připojení JDBC vytvořená pomocí konektoru Service Connector. App Service automaticky přidá odpovídající sdílený zdroj dat (na základě názvu nastavení aplikace a přípony _DS) pomocí příslušného ovladače dostupného v kontejneru. Kompletní scénář, který používá tento přístup, najdete v tématu Kurz: Vytvoření webové aplikace JBoss se službou Azure App Service v Linuxu a MySQL.
Při registraci zdroje dat v JBoss EAP existují tři základní kroky:
- Nahrajte ovladač JDBC.
- Přidejte ovladač JDBC jako modul.
- Přidejte zdroj dat pomocí modulu.
App Service je bezstavová hostitelská služba, takže tyto kroky musíte umístit do spouštěcího skriptu a spustit ji při každém spuštění kontejneru JBoss. Příklady použití PostgreSQL, MySQL a SQL Database:
Poznámka:
JBoss EAP ve službě App Service teď podporuje fakturaci byOL (Bring Your Own License), což zákazníkům se stávajícími předplatnými Red Hat umožňuje použít tyto licence přímo na nasazení EAP JBoss ve službě Azure App Service. Další informace.
Příkazy rozhraní příkazového řádku JBoss umístěte do souboru s názvem jboss-cli-commands.cli. Příkazy JBoss musí přidat modul a zaregistrovat ho jako zdroj dat. Následující příklad ukazuje příkazy rozhraní příkazového řádku JBoss pro vytvoření zdroje dat PostgreSQL s názvem
java:jboss/datasources/postgresDSJNDI .module add --name=org.postgresql --resources=/home/site/libs/postgresql-42.7.4.jar /subsystem=datasources/jdbc-driver=postgresql:add(driver-name="postgresql",driver-module-name="org.postgresql",driver-class-name="org.postgresql.Driver",driver-xa-datasource-class-name="org.postgresql.xa.PGXADataSource") data-source add --name=postgresql --driver-name="postgresql" --jndi-name="java:jboss/datasources/postgresDS" --connection-url="jdbc:postgresql://\${env.DB_HOST}:5432/postgres" --user-name="\${env.DB_USERNAME}" --password="\${env.DB_PASSWORD}" --enabled=true --use-java-context=trueVšimněte si, že
module addpříkaz používá tři proměnné prostředí (DB_HOSTDB_USERNAMEaDB_PASSWORD), které musíte přidat do app Service jako nastavení aplikace. Skript je přidá bez příznaku--resolve-parameter-values, aby JBoss neuložil jejich hodnoty v prostém textu.Vytvořte spouštěcí skript startup.sh, který volá příkazy rozhraní příkazového řádku JBoss. Následující příklad ukazuje, jak volat
jboss-cli-commands.cli. Později nakonfigurujete službu App Service tak, aby při spuštění kontejneru spustila tento skript.$JBOSS_HOME/bin/jboss-cli.sh --connect --file=/home/site/scripts/jboss_cli_commands.cliPomocí možnosti nasazení podle vašeho výběru nahrajte ovladač JDBC, jboss-cli-commands.cli a startup.sh do cest zadaných v příslušných skriptech. Zejména nahrajte startup.sh jako spouštěcí soubor. Příklad:
export RESOURCE_GROUP_NAME=<resource-group-name> export APP_NAME=<app-name> # The lib type uploads to /home/site/libs by default. az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path postgresql-42.7.4.jar --target-path postgresql-42.7.4.jar --type lib az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path jboss_cli_commands.cli --target-path /home/site/scripts/jboss_cli_commands.cli --type static # The startup type uploads to /home/site/scripts/startup.sh by default. az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path startup.sh --type startupDalší informace najdete v tématu Nasazení souborů do služby App Service.
Pokud chcete ověřit, že se zdroj dat přidal na server JBoss, připojte se přes SSH do webové aplikace a spusťte $JBOSS_HOME/bin/jboss-cli.sh --connect. Po připojení k JBoss spusťte /subsystem=datasources:read-resource příkaz pro tisk seznamu zdrojů dat.
Jak bylo dříve definováno v jboss-cli-commands.cli, můžete přistupovat k připojení PostgreSQL pomocí názvu JNDIjava:jboss/datasources/postgresDS.
Související obsah
Navštivte centrum Azure pro vývojáře v Javě, kde najdete rychlé starty, kurzy a referenční dokumentaci k Azure a Javě.