Creare uno stack ed eseguire un'applicazione - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare uno stack ed eseguire un'applicazione

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su AWS re:post o tramite Premium AWS Support.

Questa sezione mostra come utilizzare il ricettario Tomcat per implementare una configurazione di base dello stack che esegue una semplice applicazione Java server pages () JSP denominata Simple. JSP Lo stack è costituito da un livello personalizzato basato su Tomcat denominato e da un livello My. TomCustom SQL Simple JSP viene distribuito TomCustom e visualizza alcune informazioni dal database My. SQL Se non conosci già le nozioni di base su come usare AWS OpsWorks Stacks, dovresti prima leggere. Nozioni di base sugli stack Linux Chef 11

La semplice applicazione JSP

L'JSPapplicazione Simple illustra le basi su come configurare una connessione al database e recuperare i dati dal database My dello stack. SQL

<html> <head> <title>DB Access</title> </head> <body> <%@ page language="java" import="java.sql.*,javax.naming.*,javax.sql.*" %> <% StringBuffer output = new StringBuffer(); DataSource ds = null; Connection con = null; Statement stmt = null; ResultSet rs = null; try { Context initCtx = new InitialContext(); ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mydb"); con = ds.getConnection(); output.append("Databases found:<br>"); stmt = con.createStatement(); rs = stmt.executeQuery("show databases"); while (rs.next()) { output.append(rs.getString(1)); output.append("<br>"); } } catch (Exception e) { output.append("Exception: "); output.append(e.getMessage()); output.append("<br>"); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (Exception e) { output.append("Exception (during close of connection): "); output.append(e.getMessage()); output.append("<br>"); } } %> <%= output.toString() %> </body> </html>

JSPSimple utilizza un DataSource oggetto per comunicare con il database My. SQL Tomcat usa i dati nel file di configurazione del contesto dell'app Web per creare e inizializzare un oggetto DataSource e associarlo a un nome logico. Quindi registra il nome logico con un servizio di denominazione Java Naming and Directory Interface (JNDI). Per ottenere un'istanza dell'oggetto DataSource appropriato, devi creare un oggetto InitialContext e passare il nome logico della risorsa al metodo lookup dell'oggetto, che recupera l'oggetto appropriato. Il nome logico dell'JSPesempio Simplejava:comp/env/jdbc/mydb, ha i seguenti componenti:

  • Lo spazio dei nomi radice, java, che è separato dal resto del nome da due punti (:).

  • Eventuali spazi dei nomi aggiuntivi, separati da barre (/).

    Tomcat aggiunge automaticamente le risorse allo spazio dei nomi comp/env.

  • Il nome della risorsa, definito nel file di configurazione del contesto dell'app Web e separato dagli spazi dei nomi per mezzo di una barra.

    In questo esempio il nome della risorsa è jdbc/mydb.

Per stabilire una connessione al database, Simple JSP effettua le seguenti operazioni:

  1. Chiama il metodo DataSource dell'oggetto getConnection, che restituisce un oggetto Connection.

  2. Chiama il metodo Connection dell'oggetto createStatement per creare un oggetto Statement, che puoi utilizzare per comunicare con il database.

  3. Comunica con il database chiamando il metodo Statement appropriato.

    JSPChiamate semplici executeQuery per eseguire una SHOW DATABASES query, che elenca i database del server.

Il metodo executeQuery restituisce un oggetto ResultSet, che contiene i risultati delle query. Simple JSP ottiene i nomi dei database dall'ResultSetoggetto restituito e li concatena per creare una stringa di output. Infine, l'esempio chiude gli oggetti ResultSet, Statement e Connection. Per ulteriori informazioni su JSP eJDBC, consulta rispettivamente JavaServer Pages Technology and JDBCBasics.

Per utilizzare JSP Simple con uno stack, devi metterlo in un repository. Puoi utilizzare uno qualsiasi dei repository supportati, ma per usare Simple JSP con lo stack di esempio discusso nella sezione seguente, devi metterlo in un archivio S3 pubblico. Per informazioni su come utilizzare gli altri repository standard, consulta Repository dei libri di ricette.

Per inserire Simple JSP in un archivio S3
  1. Copiare il codice di esempio in un file denominato simplejsp.jsp e inserire il file in una directory denominata simplejsp.

  2. Creare un archivio .zip della directory simplejsp.

  3. Crea un bucket Amazon S3 pubblico, caricalo simplejsp.zip nel bucket e rendi pubblico il file.

    Per sapere come eseguire questa attività, consulta Nozioni di base su Amazon Simple Storage Service.

Creare uno stack

Per eseguire Simple è JSP necessario uno stack con i seguenti livelli.

  • Un SQL livello My, che supporta il backend My SQL server.

  • Un livello personalizzato che utilizza il libro di ricette Tomcat per supportare istanze server Tomcat.

Per creare lo stack
  1. Nella dashboard AWS OpsWorks Stacks, fate clic su Aggiungi stack per creare un nuovo stack e fate clic su Avanzato >> per visualizzare tutte le opzioni. Configurare lo stack come segue.

    • Nome: un nome di stack definito dall'utente; in questo esempio viene utilizzato. TomStack

    • Usa libri di cucina personalizzati per Chef: imposta l'interruttore su , che mostra alcune opzioni aggiuntive.

    • Tipo di repository —Git.

    • Archivio URL:. git://github.com/amazonwebservices/opsworks-example-cookbooks.git

    • Custom Chef JSON: aggiungi quanto segue: JSON

      { "tomcat": { "base_version": 7, "java_opts": "-Djava.awt.headless=true -Xmx256m" }, "datasources": { "ROOT": "jdbc/mydb" } }

    Per le opzioni rimanenti, puoi accettare le impostazioni predefinite.

    La personalizzazione JSON esegue le seguenti operazioni:

    • Ignora l'attributo ['base_version'] del libro di ricette Tomcat per impostare la versione di Tomcat su 7. Il valore predefinito è 6.

    • Sostituisce l'['java_opts']attributo del libro di cucina Tomcat per specificare che l'istanza è headless e imposta la dimensione JVM massima dell'heap su 256 MB; il valore predefinito non imposta alcuna opzione per le istanze che eseguono Amazon Linux.

    • Speciifica il valore dell'['datasources]attributo, che assegna un nome di JDBC risorsa (jdbc/mydb) al nome del contesto dell'app Web (), come discusso in. ROOT tomcat::context

      Quest'ultimo attributo non ha un valore predefinito; è necessario impostarlo con custom. JSON

    Configuration Management interface showing Chef version options and custom JSON input field.
  2. Fare clic su Add a layer (Aggiungi un livello). Per Tipo di livello, seleziona My SQL. Quindi, fare clic su Add Layer (Aggiungi livello).

  3. Fare clic su Instances (Istanze) nel riquadro di navigazione, quindi fare clic su Add an instance (Aggiungi un'istanza). Fare clic su Add Instance (Aggiungi istanza) per accettare le impostazioni predefinite. Sulla riga dell'istanza, fare clic su start (avvia).

  4. Tornare alla pagina Layers (Livelli) e fare clic su + Layer (+ Livello) per aggiungere un livello. Per Layer type (Tipo di livello), fare clic su Custom (Personalizzato). L'esempio utilizza TomCustom e tomcustom, rispettivamente, come nome e nome abbreviato del livello.

    Add Layer form with Custom layer type, Name, and Short name fields for creating a customized layer.
  5. Nella pagina Layers (Livelli), per il livello personalizzato, fare clic su Recipes (Ricette), quindi fare clic su Edit (Modifica). In Custom Chef Recipes (Ricette Chef personalizzate), assegnare le ricette del libro di ricette Tomcat agli eventi del ciclo di vita del livello, nel modo seguente:

    • Per Setup (Installazione), digitare tomcat::setup e fare clic su +.

    • Per Configure (Configurazione), digitare tomcat::configure e fare clic su +.

    • Per Deploy (Distribuzione), digitare tomcat::deploy e fare clic su +. Quindi, fare clic su Save (Salva).

      .

    Custom Chef Recipes interface showing setup, configure, and deploy steps with options.
  6. Fare clic su Apps (App) nel riquadro di navigazione, quindi fare clic su Add an app (Aggiungi un'app). Specificare le seguenti opzioni e fare clic su Add App (Aggiungi app):

    • Nome: il nome dell'app; nell'esempio viene utilizzato Simple JSP e il nome breve generato da AWS OpsWorks Stacks sarà simplejsp.

    • Tipo di app: imposta questa opzione su Altro.

      AWS OpsWorks Stacks distribuisce automaticamente i tipi di app standard nelle istanze del server associate. Se si imposta App type (Tipo di app) su un'opzione diversa, AWS OpsWorks Stacks esegue semplicemente le ricette di distribuzione e consente loro di gestire la distribuzione.

    • Document root: imposta questa opzione su. ROOT

      Il valore Document root (Radice documento) specifica il nome del contesto.

    • Tipo di repository: imposta questa opzione su S3 Archive.

    • Repository URL: impostalo sull'Amazon URL S3 dell'app che hai creato in precedenza.

    Utilizzare le impostazioni predefinite per le altre opzioni.

    Application settings form with fields for name, app type, document root, and source details.
  7. Utilizza la pagina Istanze per aggiungere un'istanza al TomCustom layer e avviarla. AWS OpsWorks Stacks esegue automaticamente le ricette Deploy su una nuova istanza dopo il completamento delle ricette di installazione, quindi all'avvio dell'istanza viene distribuito anche Simple. JSP

  8. Quando l' TomCustom istanza è online, fai clic sul nome dell'istanza nella pagina Istanze per visualizzarne i dettagli. Copiare l'indirizzo IP pubblico. Quindi costruisci a URL come segue: http://publicIP/tc/. appname.jsp Ad esempio, questo URL avrà un aspetto simile. http://50.218.191.172/tc/simplejsp.jsp

    Nota

    L'URLApache che inoltra le richieste a Tomcat è impostato sull'attributo predefinito['tomcat']['apache_tomcat_bind_path'],. /tc/ È impostata la radice JSP del documento SimpleROOT, che è un valore speciale che viene risolto in. / URLÈ quindi «... /tc/simplejsp.jsp».

  9. Incolla il URL file del passaggio precedente nel tuo browser. Verrà visualizzato un codice analogo al seguente:

    Databases found: information_schema simplejsp test
    Nota

    Se il tuo stack ha un'SQListanza My, AWS OpsWorks Stacks crea automaticamente un database per ogni app, denominato con il nome breve dell'app.