Esercitazione: Creare un'app Web JBoss con app Azure Servizio in Linux e MySQL

Questa esercitazione illustra come compilare, configurare e distribuire un'applicazione JBoss sicura in app Azure Servizio che si connette a un database MySQL (usando Database di Azure per MySQL). Il servizio app di Azure è un servizio di hosting Web altamente scalabile e scalabile che può distribuire facilmente app in Windows o Linux. Al termine, si avrà un'app JBoss in esecuzione nel servizio app Azure in Linux.

Screenshot dell'applicazione JBoss che archivia i dati in MySQL.

In questa esercitazione apprenderai a:

  • Creare un'architettura sicura per impostazione predefinita per app Azure Servizio e Database di Azure per MySQL server flessibile.
  • Proteggere la connettività del database usando un stringa di connessione senza password.
  • Verificare le origini dati JBoss in servizio app usando l'interfaccia della riga di comando di JBoss.
  • Distribuire un'app di esempio JBoss per servizio app da un repository GitHub.
  • Accedi alle impostazioni dell'app del servizio app nel codice dell'applicazione.
  • Apportare aggiornamenti e ridistribuire il codice dell'applicazione.
  • Eseguire lo streaming dei log di diagnostica dal servizio app.
  • Gestire l'app nel portale di Azure.

Prerequisiti

1. Eseguire l'esempio

Prima di tutto, configurare un'app guidata dai dati di esempio come punto di partenza. Per praticità, il repository di esempio include una configurazione del contenitore di sviluppo. Il contenitore di sviluppo include tutti gli elementi necessari per sviluppare un'applicazione, tra cui il database, la cache e tutte le variabili di ambiente necessarie per l'applicazione di esempio. Il contenitore di sviluppo può essere eseguito in un codespace GitHub, il che significa che è possibile eseguire l'esempio in qualsiasi computer con un Web browser.

Passaggio 1: in una nuova finestra del browser:

  1. Accedi all'account GitHub.
  2. Accedere a https://github.com/Azure-Samples/msdocs-jboss-mysql-sample-app/fork.
  3. Selezionare Crea fork.

Screenshot che mostra come creare un fork del repository GitHub di esempio.

Passaggio 2: Nel fork di GitHub:

Selezionare Codice>Crea codespace nel file main. La configurazione del codespace richiede alcuni minuti.

Screenshot che mostra come creare un codespace in GitHub.

Passaggio 3: Nel terminale codespace:

  1. Eseguire mvn clean wildfly:run.
  2. Quando viene visualizzata la notifica Your application running on port 8080 is available., attendere alcuni secondi più a lungo per il completamento del caricamento dell'applicazione da parte del server WildFly. Selezionare quindi Apri nel browser. L'applicazione di esempio dovrebbe essere visualizzata in una nuova scheda del browser. Per arrestare il server WildFly, digitare Ctrl+C.

Screenshot che mostra come eseguire l'applicazione di esempio all'interno del codespace GitHub.

Suggerimento

È possibile chiedere a GitHub Copilotinformazioni su questo repository. Ad esempio:

  • @workspace Cosa fa questo progetto?
  • @workspace Cosa fa la cartella .devcontainer?

Problemi? Controllare la sezione Risoluzione dei problemi.

2. Creare il servizio app e MySQL

Creare prima di tutto le risorse di Azure. I passaggi usati in questa esercitazione creano un set di risorse sicure per impostazione predefinita che includono servizio app e Database di Azure per MySQL. Per il processo di creazione, si specifica:

  • Nome dell'app Web. Viene usato come parte del nome DNS per l'app sotto forma di https://<app-name>-<hash>.<region>.azurewebsites.net.
  • Area in cui eseguire l'app fisicamente nel mondo. Viene usato anche come parte del nome DNS per l'app.
  • Stack di runtime per l'app. È qui che si seleziona la versione Java da usare per l'app.
  • Piano di hosting per l'app. Si tratta del piano tariffario che include il set di funzionalità e la capacità di ridimensionamento per l'app.
  • Gruppo di risorse per l'app. Un gruppo di risorse consente di raggruppare (in un contenitore logico) tutte le risorse di Azure necessarie per l'applicazione.

Per creare risorse del Servizio app di Azure, accedere al portale di Azure e seguire questa procedura.

Passaggio 1: nel portale di Azure:

  1. Nella barra di ricerca superiore digitare servizio app.
  2. Selezionare l'elemento etichettato servizio app sotto l'intestazione Servizi.
  3. Selezionare Crea>app Web. È anche possibile passare direttamente alla creazione guidata.

Screenshot che mostra come usare la casella di ricerca nella barra degli strumenti superiore per trovare la creazione guidata dell'app Web.

Passaggio 2: nella pagina Crea app Web compilare il modulo come indicato di seguito.

  1. Nome: msdocs-jboss-mysql. Verrà generato automaticamente un gruppo di risorse denominato msdocs-jboss-mysql_group .
  2. Stack di runtime: Java 17.
  3. Stack di server Web Java: Red Hat JBoss EAP 8. Se la sottoscrizione di Red Hat è già stata configurata con Azure, selezionare Red Hat JBoss EAP 8 BYO License (Licenza BYO di Red Hat JBoss EAP 8 BYO).
  4. Area: qualunque area di Azure nelle vicinanze.
  5. Piano Linux: creare un nuovo e usare il nome msdocs-jboss-mysql.
  6. Piano tariffario: Premium V3 P0V3. Quando si è pronti, è possibile passare a un piano tariffario diverso.
  7. Distribuire con l'app: selezionare Database. Database di Azure per MySQL : il server flessibile è selezionato automaticamente per impostazione predefinita. Si tratta di un database MySQL come servizio completamente gestito in Azure, compatibile con le edizioni community più recenti.
  8. Selezionare Rivedi e crea.
  9. Al termine della convalida selezionare Crea.

Screenshot che mostra come configurare una nuova app e un nuovo database nella procedura guidata dell'app Web.

Passaggio 3: il completamento della distribuzione richiede alcuni minuti. Al termine della distribuzione, selezionare il pulsante Vai alla risorsa. Si accede direttamente all'app del servizio app, ma vengono create le risorse seguenti:

  • Gruppo di risorse: contenitore per tutte le risorse create.
  • Piano di servizio app: definisce le risorse di calcolo per il servizio app. Viene creato un piano Linux nel livello Basic.
  • Servizio app: rappresenta l'app ed è in esecuzione nel piano di servizio app.
  • Rete virtuale: integrata con l'app del servizio app e isola il traffico di rete back-end.
  • Server flessibile di Database di Azure per MySQL: accessibile solo dalla rete virtuale. Vengono automaticamente creati un database e un utente nel server.
  • Zone DNS private: abilitare la risoluzione DNS del server di database nella rete virtuale.

Screenshot che mostra il processo di distribuzione completato.

Problemi? Controllare la sezione Risoluzione dei problemi.

3. Creare una connessione senza password

In questo passaggio viene generata una connessione al servizio basata su identità gestita, che in seguito è possibile usare per creare un'origine dati nel server JBoss. Usando un'identità gestita per connettersi al database MySQL, il codice è sicuro da perdite accidentali di segreti.

Passaggio 1: Creare un'identità gestita.

  1. Nella barra di ricerca superiore digitare identità gestita.
  2. Selezionare l'elemento con etichetta Identità gestite sotto l'intestazione Servizi.
  3. Seleziona Crea.
  4. In Gruppo di risorse selezionare msdocs-jboss-mysql_group.
  5. In Area selezionare la stessa area usata per l'app Web.
  6. In Nome digitare msdocs-jboss-mysql-server-identity.
  7. Selezionare Rivedi e crea.
  8. Seleziona Crea.

Screenshot che mostra come configurare una nuova identità gestita.

Passaggio 2: Abilitare l'autenticazione di Microsoft Entra nel server MySQL.

  1. Nella barra di ricerca superiore digitare msdocs-jboss-mysql-server.
  2. Selezionare la risorsa server flessibile Database di Azure per MySQL denominata msdocs-jboss-mysql-server.
  3. Nel menu a sinistra selezionare Autenticazione di sicurezza>.
  4. In Assegna accesso a selezionare solo l'autenticazione di Microsoft Entra.
  5. In Identità gestita assegnata dall'utente selezionare Seleziona.
  6. Selezionare msdocs-jboss-mysql-server-identity e quindi selezionare Aggiungi. L'assegnazione dell'identità al server MySQL richiede qualche istante.
  7. In Microsoft Entra Admin Name (Nome amministratore Di Microsoft Entra) selezionare Select (Seleziona).
  8. Trovare l'account Azure e selezionarlo, quindi selezionare Seleziona.
  9. Selezionare Salva e attendere il completamento dell'operazione.

Screenshot che mostra come configurare l'autenticazione di Microsoft Entra per Database di Azure per MySQL server flessibile.

Passaggio 3: Aggiungere un connettore di servizi gestito basato su identità.

  1. Nella barra di ricerca superiore digitare msdocs-jboss-mysql.
  2. Selezionare la risorsa servizio app denominata msdocs-jboss-mysql.
  3. Nel menu a sinistra della pagina Servizio app selezionare Impostazioni > Connettore di servizi.
  4. Seleziona Crea.
  5. Nella scheda Informazioni di base:
  6. Impostare Tipo di servizio su DB per il server flessibile MySQL.
  7. Impostare il server flessibile MySQL su msdocs-jboss-mysql-server.
  8. Impostare il database MySQL su msdocs-jboss-mysql-database.
  9. Impostare Tipo di client su Java.
  10. Seleziona la scheda Autenticazione.
  11. Selezionare Identità gestita assegnata dal sistema.
  12. Selezionare la scheda Rivedi e crea .
  13. Al termine della convalida, selezionare Crea in Cloud Shell e attendere il completamento dell'operazione in Cloud Shell.
  14. Quando viene visualizzato il codice JSON di output, è possibile chiudere Cloud Shell. Chiudere anche la finestra di dialogo Crea connessione .
  15. Selezionare Aggiorna per visualizzare il nuovo connettore di servizi.

Screenshot che mostra un connettore di servizio completamente configurato, pronto per la creazione con Cloud Shell.

Passaggio 4: Aggiungere plug-in di autenticazione al stringa di connessione.

  1. Nel menu a sinistra selezionare Variabili > di ambiente Stringhe di connessione.
  2. Selezionare AZURE_MYSQL_CONNECTIONSTRING. Il campo Valore deve contenere un user oggetto ma senza password. L'utente è un'identità gestita.
  3. Il server JBoss nell'app servizio app include i plug-in di autenticazione autenticano l'identità gestita, ma è comunque necessario aggiungerlo al stringa di connessione. Scorrere fino alla fine del valore e aggiungere &defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin.
  4. Selezionare Applica.
  5. Selezionare Applica, quindi Conferma.

Screenshot che mostra come modificare il valore della variabile di ambiente MySQL in Azure.

Problemi? Controllare la sezione Risoluzione dei problemi.

4. Confermare l'origine dati JNDI

Se si aggiunge un'impostazione dell'app contenente un stringa di connessione JDBC valido per Oracle, SQL Server, PostgreSQL o MySQL, servizio app aggiunge un'origine dati JNDI (Java Naming and Directory Interface) nel server JBoss. In questo passaggio, si userà la connessione SSH al contenitore dell'app per verificare l'origine dati JNDI. Nel processo si apprenderà come accedere alla shell SSH ed eseguire l'interfaccia della riga di comando di JBoss.

Passaggio 1: tornare alla pagina Servizio app:

  1. Nel menu a sinistra selezionare Strumenti > di sviluppo SSH.
  2. Selezionare Vai.

Screenshot che mostra come aprire la shell SSH per l'app dal portale di Azure.

Passaggio 2: nel terminale SSH:

  1. Eseguire $JBOSS_HOME/bin/jboss-cli.sh --connect.
  2. Nella connessione dell'interfaccia della riga di comando di JBoss eseguire ls subsystem=datasources/data-source. Verrà visualizzata l'origine dati generata automaticamente denominata AZURE_MYSQL_CONNECTIONSTRING_DS.
  3. Ottenere il nome JNDI dell'origine dati con /subsystem=datasources/data-source=AZURE_MYSQL_CONNECTIONSTRING_DS:read-attribute(name=jndi-name). È ora disponibile un nome java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DSJNDI, che è possibile usare nel codice dell'applicazione in un secondo momento.

Screenshot che mostra i comandi dell'interfaccia della riga di comando di JBoss da eseguire nella shell SSH e il relativo output.

Nota

Solo le modifiche apportate ai file in /home possono essere mantenute dopo i riavvii dell'app. Ad esempio, se si modifica o si modifica /opt/eap/standalone/configuration/standalone.xml la configurazione del server nell'interfaccia della riga di comando di JBoss, le modifiche non verranno mantenute oltre un riavvio dell'app. Per rendere persistenti le modifiche, usare uno script di avvio, ad esempio illustrato in Configurare le origini dati per un'app Tomcat, JBoss o Java SE nel servizio app Azure

Problemi? Controllare la sezione Risoluzione dei problemi.

5. Distribuire il codice di esempio

In questo passaggio viene configurata la distribuzione di GitHub usando GitHub Actions. È solo uno dei molti modi per eseguire la distribuzione nel servizio app, ma anche un ottimo modo per avere l'integrazione continua nel processo di distribuzione. Per impostazione predefinita, ogni git push nel repository GitHub avvia l'azione di compilazione e distribuzione.

Analogamente alla convenzione JBoss, se si vuole eseguire la distribuzione nel contesto radice di JBoss, assegnare all'artefatto compilato ROOT.war.

Passaggio 1: Tornare alla pagina servizio app, nel menu a sinistra selezionare Centro distribuzione>.

Screenshot che mostra come aprire il Centro distribuzione nel servizio app.

Passaggio 2: nella pagina Centro distribuzione:

  1. In Origine, selezionare GitHub. Per impostazione predefinita, GitHub Actions è selezionato come provider di compilazione.
  2. Accedere all'account GitHub e seguire la richiesta di autorizzare Azure.
  3. In Organizzazione, selezionare l'account.
  4. In Repository selezionare msdocs-jboss-mysql-sample-app.
  5. Per Ramo selezionare principale. Si tratta dello stesso ramo usato con l'app di esempio, senza file o configurazione correlati ad Azure.
  6. Per Tipo di autenticazione, selezionare Identità assegnata dall'utente.
  7. Nel menu in alto, selezionare Salva. Il servizio app esegue il commit di un file del flusso di lavoro nel repository GitHub scelto, nella directory .github/workflows. Per impostazione predefinita, il centro distribuzione crea un'identità assegnata dall'utente per l'autenticazione tramite Microsoft Entra (autenticazione OIDC). Per le opzioni di autenticazione alternative, vedere Distribuire nel servizio app usando GitHub Actions.

Screenshot che mostra come configurare CI/CD con GitHub Actions.

Passaggio 3: tornare nel codespace GitHub del fork di esempio, eseguire git pull origin main. In questo modo viene eseguito il pull del file del flusso di lavoro appena eseguito nel codespace. È possibile modificarlo in base alle esigenze in .github/workflows/main_msdocs-jboss-mysql.yml.

Screenshot che mostra il pull git all'interno di un codespace GitHub.

Passaggio 4 (opzione 1: con GitHub Copilot):

  1. Avviare una nuova sessione di chat facendo clic sulla visualizzazione Chat e quindi su +.
  2. Chiedere "@workspace Come si connette l'app al database e alla cache?" Copilot potrebbe fornire una spiegazione sull'origine dati java:jboss/MySQLDS e su come è configurata.
  3. Ad esempio, "L'origine dati in JBoss in Azure usa il nome JNDI java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS. Copilot potrebbe fornire un suggerimento di codice simile a quello dell'opzione 2: senza i passaggi di GitHub Copilot riportati di seguito e anche indicare di apportare la modifica nella classe. GitHub Copilot non offre la stessa risposta ogni volta, potrebbe essere necessario porre altre domande per ottimizzarla. Per suggerimenti, vedere Cosa è possibile fare con GitHub Copilot nel codespace?.

Screenshot che mostra come porre una domanda in una nuova sessione di chat di GitHub Copilot.

Passaggio 4 (opzione 2: senza GitHub Copilot):

  1. Aprire src/main/resources/META-INF/persistence.xml in Esplora risorse. All'avvio dell'applicazione, carica le impostazioni del database in questo file.
  2. Modificare il valore di in java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS, ovvero l'origine dati trovata in precedenza con l'interfaccia della riga di <jta-data-source> comando di JBoss nella shell SSH.

Screenshot che mostra un codespace GitHub e il file ContextListener.java aperto.

Passaggio 5:

  1. Selezionare l'estensione Controllo del codice sorgente.
  2. Nella casella di testo digitare un messaggio di commit come Configure Azure JNDI name.
  3. Selezionare Commit e quindi confermare con .
  4. Selezionare Sincronizza modifiche 1, quindi confermare con OK.

Screenshot che mostra le modifiche di cui è stato eseguito il commit e il push in GitHub.

Passaggio 6: Tornare alla pagina Centro distribuzione nel portale di Azure:

  1. Selezionare Log. Una nuova esecuzione della distribuzione è già stata avviata dalle modifiche di cui è stato eseguito il commit.
  2. Nell'elemento di log per l'esecuzione della distribuzione selezionare la voce Compila/Distribuisci Log con il timestamp più recente.

Screenshot che mostra come aprire i log di distribuzione nel Centro distribuzione.

Passaggio 7: Si viene portati nel repository GitHub e si noterà che l'azione GitHub è in esecuzione. Il file del flusso di lavoro definisce due fasi separate, compilare e distribuire. Attendere che l'esecuzione di GitHub visualizzi lo stato Operazione completata. Ci vogliono circa 5 minuti.

Screenshot che mostra un'esecuzione di GitHub in corso.

Problemi? Controllare la sezione Risoluzione dei problemi.

6. Passare all'app

Passaggio 1: Nella pagina Servizio app:

  1. Nel menu a sinistra selezionare Panoramica.
  2. In Dominio predefinito selezionare l'URL dell'app.

Screenshot che mostra come avviare un servizio app dal portale di Azure.

Passaggio 2: Aggiungere alcune attività all'elenco. Si esegue un'app Web nel servizio app di Azure, con connettività sicura al Database di Azure per MySQL.

Screenshot dell'app Web JBoss con MySQL in esecuzione in Azure.

Problemi? Controllare la sezione Risoluzione dei problemi.

7. Eseguire lo streaming dei log di diagnostica

Il Servizio app di Azure acquisisce tutto l’output dei messaggi nella console per facilitare la diagnosi dei problemi con l'applicazione. L'applicazione di esempio include istruzioni di registrazione Log4j standard per illustrare questa funzionalità, come illustrato nel frammento di codice seguente:

private static final Logger logger = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());

@PersistenceContext
private EntityManager entityManager;

public List<Task> getAllTasks() {
    logger.log(Level.INFO, "Finding all tasks. ");

    return this.entityManager.createNamedQuery("findAllTasks", Task.class).getResultList();
}

Nella pagina servizio app selezionare Flusso di log dal menu a sinistra. Vengono visualizzati i log per l'app, inclusi i log e i log della piattaforma dall'interno del contenitore.

Screenshot che mostra come visualizzare il flusso di log nel portale di Azure.

Altre informazioni sulla registrazione nelle app Java nella serie abilitare OpenTelemetry di Monitoraggio di Azure per .NET, Node.js, Python e Applicazioni Java.

Problemi? Controllare la sezione Risoluzione dei problemi.

8. Pulire le risorse

Al termine, è possibile eliminare tutte le risorse dalla sottoscrizione di Azure eliminando il gruppo di risorse.

Passaggio 1: nella barra di ricerca nella parte superiore del portale di Azure:

  1. Immettere il nome del gruppo di risorse msdocs-jboss-mysql_group.
  2. Selezionare il gruppo di risorse.

Screenshot che illustra come cercare e passare a un gruppo di risorse nel portale di Azure.

Passaggio 2: nella pagina del gruppo di risorse selezionare Elimina gruppo di risorse.

Screenshot che mostra la posizione del pulsante

Passaggio 3:

  1. Confermare l'eliminazione digitando il nome del gruppo di risorse.
  2. Selezionare Elimina.
  3. Confermare nuovamente con Elimina.

Screenshot della finestra di dialogo di conferma per l’eliminazione di un gruppo di risorse nel portale di Azure.

Risoluzione dei problemi

Viene visualizzato l'errore "non autorizzato a usare la funzionalità Bring Your Own License" nella creazione guidata.

Se viene visualizzato l'errore: The subscription '701ea799-fb46-4407-bb67-9cbcf289f1c7' is not entitled to use the Bring Your Own License feature when creating the application, significa che è stata selezionata la licenza BYO Red Hat JBoss EAP 7/8 nello stack di server Web Java, ma non è stata configurata l'account Azure in Red Hat Cloud Access o non si dispone di una licenza JBoss EAP attiva in Red Hat Cloud Access.

La visualizzazione distribuzione del portale per Database di Azure per MySQL server flessibile mostra uno stato conflitto.

A seconda della sottoscrizione e dell'area selezionata, è possibile che lo stato della distribuzione per il server flessibile di Database di Azure per MySQL sia Conflict, con il messaggio seguente in Dettagli operazione:

InternalServerError: An unexpected error occured while processing the request.

Questo errore è probabilmente causato da un limite per la sottoscrizione per l'area selezionata. Provare a scegliere un'area diversa per la distribuzione.

La finestra di dialogo Crea connessione mostra un pulsante Crea in Cloud Shell, ma non è abilitato.

È anche possibile che venga visualizzato un messaggio di errore nella finestra di dialogo: The database server is in Virtual Network and Cloud Shell can't connect to it. Please copy the commands and execute on an environment which can connect to the database server in Virtual Network.

L'automazione del connettore di servizi richiede l'accesso di rete al server MySQL. Esaminare le impostazioni di rete della risorsa del server MySQL e assicurarsi che l'opzione Consenti l'accesso pubblico a questa risorsa tramite Internet tramite un indirizzo IP pubblico sia selezionata almeno. Service Connector può portarlo da lì.

Se questa casella di controllo non viene visualizzata, è possibile che sia stata creata la distribuzione usando la procedura guidata App Web e database e che la distribuzione blocchi tutti gli accessi alla rete pubblica al server MySQL. Non è possibile modificare la configurazione. Poiché il contenitore Linux dell'app può accedere a MySQL tramite l'integrazione della rete virtuale, è possibile installare l'interfaccia della riga di comando di Azure nella sessione SSH dell'app ed eseguire i comandi di Cloud Shell forniti in questa posizione.

L'app di esempio distribuita non mostra l'app elenco attività.

Se viene visualizzata la pagina iniziale di JBoss anziché l'app elenco attività, servizio app è probabilmente ancora in corso il caricamento del contenitore aggiornato dalla distribuzione del codice più recente. Attendere alcuni minuti e aggiornare la pagina.

L'app non è stata avviata e viene visualizzato "Accesso negato per l'utente... (con password: NO)' nei log.

Questo errore è molto probabile perché non è stato aggiunto il plug-in di autenticazione senza password al stringa di connessione (vedere il codice di esempio Java per Integrare Database di Azure per MySQL con Service Connector). Modificare il stringa di connessione MySQL seguendo le istruzioni riportate in 3. Creare una connessione senza password.

Nei log di diagnostica viene visualizzato un errore "Tabella 'Task' già esistente".

È possibile ignorare questo errore di ibernazione perché indica che il codice dell'applicazione è connesso al database MySQL. L'applicazione è configurata per creare le tabelle necessarie all'avvio (vedere src/main/resources/META-INF/persistence.xml). Quando l'applicazione viene avviata per la prima volta, dovrebbe creare correttamente le tabelle, ma nei riavvii successivi viene visualizzato questo errore perché le tabelle esistono già.

Domande frequenti

Quanto costa questa configurazione?

I prezzi per le risorse create sono i seguenti:

  • Il piano di servizio app viene creato nel livello P0v3 e può essere ridimensionato verso l'alto o verso il basso. Vedere Prezzi del servizio app.
  • Il server flessibile MySQL viene creato nel livello D2ds e può essere ridimensionato verso l'alto o verso il basso. Vedere Prezzi di Database di Azure per MySQL.

Come connettersi al server MySQL dietro la rete virtuale con altri strumenti?

  • Anche il contenitore JBoss non ha il mysql-client terminale. Se lo si desidera, è necessario installarlo manualmente. Tenere presente che tutto ciò che si installa non persiste tra i riavvii dell'app.
  • Per connettersi da uno strumento desktop come MySQL Workbench, il computer deve trovarsi all'interno della rete virtuale. Ad esempio, potrebbe trattarsi di una macchina virtuale di Azure in una delle subnet o di un computer in una rete locale con una connessione VPN da sito a sito con la rete virtuale di Azure.
  • È anche possibile integrare Azure Cloud Shell con la rete virtuale.

Come funziona lo sviluppo di app locali con GitHub Actions?

Quando si usa il file del flusso di lavoro generato automaticamente dal Servizio app come esempio, ogni git push avvia una nuova esecuzione della compilazione e della distribuzione. Da un clone locale del repository GitHub si effettua il push degli aggiornamenti desiderati in GitHub. Ad esempio:

git add .
git commit -m "<some-message>"
git push origin main

Non si dispone delle autorizzazioni per creare un'identità assegnata dall'utente

Vedere Configurare la distribuzione di GitHub Actions dal Centro distribuzione.

Cosa è possibile fare con GitHub Copilot nel codespace?

Si potrebbe aver notato che la visualizzazione chat di GitHub Copilot era già presente quando è stato creato il codespace. Per praticità, includiamo l'estensione di chat di GitHub Copilot nella definizione del contenitore (vedere .devcontainer/devcontainer.json). Tuttavia, è necessario un account GitHub Copilot (disponibile una versione di valutazione gratuita di 30 giorni).

Alcuni suggerimenti per l'utente quando si parla con GitHub Copilot:

  • In una singola sessione di chat, le domande e le risposte si basano l'una sull'altra e puoi regolare le tue domande per ottimizzare la risposta che ottieni.
  • Per impostazione predefinita, GitHub Copilot non ha accesso ad alcun file nel repository. Per porre domande su un file, aprire prima il file nell'editor.
  • Per consentire a GitHub Copilot di accedere a tutti i file nel repository quando si preparano le risposte, iniziare la domanda con @workspace. Per ulteriori informazioni, vedere Use the @workspace agent.
  • Nella sessione di chat, GitHub Copilot può suggerire modifiche e (con @workspace) anche dove apportare le modifiche, ma non è consentito apportare le modifiche. È necessario aggiungere le modifiche suggerite e testarle.

Ecco alcune altre cose che puoi dire per ottimizzare la risposta che ottieni:

  • Cambiare questo codice per usare l'origine dati jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS.
  • Alcune importazioni nel codice usano javax, ma si dispone di un'app Jakarta.
  • Si vuole che questo codice venga eseguito solo se è impostata la variabile di ambiente AZURE_MYSQL_CONNECTIONSTRING.
  • Si vuole che questo codice venga eseguito solo nel servizio app di Azure e non in locale.

Passaggi successivi

Altre informazioni sull'esecuzione di app Java nel Servizio app sono disponibili nella Guida per gli sviluppatori.

Informazioni su come proteggere l'app con un dominio e un certificato personalizzati.

 Proteggere con dominio personalizzato e certificato di protezione