As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implantar aplicativos Java
Importante
A ferramenta AWS OpsWorks Stacks o serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com o AWS Support Equipe em AWS Re:post
Os tópicos a seguir descrevem como implantar aplicativos em instâncias de camada Java App Server. Os exemplos são para JSP aplicativos, mas você pode usar basicamente o mesmo procedimento para instalar outros tipos de aplicativos Java.
Você pode implantar JSP páginas de qualquer um dos repositórios compatíveis. Se você quiser implantar WAR arquivos, observe que AWS OpsWorks O Stacks extrai automaticamente WAR arquivos que são implantados de um Amazon S3 ou HTTP arquivamento, mas não de um repositório Git ou Subversion. Se quiser usar o Git ou o Subversion para WAR arquivos, você pode fazer o seguinte:
-
Armazenar o arquivo extraído no repositório.
-
Armazene o WAR arquivo no repositório e use um gancho de implantação do Chef para extrair o arquivo, conforme descrito no exemplo a seguir.
Você pode usar ganchos de implantação do Chef para executar aplicativos Ruby fornecidos pelo usuário em uma instância em qualquer um dos quatro estágios de implantação. O nome do aplicativo determina o estágio. Veja a seguir um exemplo de um aplicativo Ruby chamadobefore_migrate.rb
, que extrai um WAR arquivo que foi implantado de um repositório Git ou Subversion. O nome associa o aplicativo com o hook de implantação do Checkout para que ele seja executado no início da operação de implantação, após a verificação do código, mas antes da migração. Para obter mais informações sobre como usar esse exemplo, consulte Uso de hooks de implantação do Chef.
::Dir.glob(::File.join(release_path, '*.war')) do |archive_file| execute "unzip_#{archive_file}" do command "unzip #{archive_file}" cwd release_path end end
nota
Quando você implanta uma atualização em um JSP aplicativo, o Tomcat pode não reconhecer a atualização e, em vez disso, continuar executando a versão existente do aplicativo. Isso pode acontecer, por exemplo, se você implantar seu aplicativo como um arquivo.zip que contém somente uma JSP página. Para garantir que o Tomcat execute a versão implantada mais recentemente, o diretório raiz do projeto deve incluir um INF diretório WEB - que contenha um web.xml
arquivo. Um arquivo web.xml
pode conter uma variedade de conteúdos, mas o conteúdo a seguir é suficiente para garantir que o Tomcat reconheça as atualizações e execute a última versão implementada do aplicativo. Você não precisa alterar a versão para cada atualização. O Tomcat reconhecerá a atualização mesmo se a versão não tiver sido alterada.
<context-param> <param-name>appVersion</param-name> <param-value>0.1</param-value> </context-param>
Implantando um aplicativo JSP
Para implantar um JSP aplicativo, especifique o nome e as informações do repositório. Opcionalmente, você também pode especificar domínios e SSL configurações. Para obter mais informações sobre como criar um aplicativo, consulte Adição de aplicativos. O procedimento a seguir mostra como criar e implantar uma JSP página simples a partir de um arquivo público do Amazon S3. Para obter informações sobre como usar outros tipos de repositório, incluindo arquivos do Amazon S3 privados, consulte Origem do aplicativo.
O exemplo a seguir mostra a JSP página, que simplesmente exibe algumas informações do sistema.
<%@ page import="java.net.InetAddress" %> <html> <body> <% java.util.Date date = new java.util.Date(); InetAddress inetAddress = InetAddress.getLocalHost(); %> The time is <% out.println( date ); out.println("<br>Your server's hostname is "+inetAddress.getHostName()); %> <br> </body> </html>
nota
O procedimento a seguir pressupõe que você já está familiarizado com os conceitos básicos de criação de pilhas, a adição de instâncias em layers e assim por diante. Se você é novo em AWS OpsWorks Pilhas, você deve ver Conceitos básicos das pilhas Linux do Chef 11 primeiro.
Para implantar uma JSP página a partir de um arquivo do Amazon S3
-
Crie uma pilha com uma camada Java App Server, adicione uma instância 24/7 à camada e inicie-a.
-
Copie o código em um arquivo chamado
simplejsp.jsp
, coloque o arquivo em uma pasta chamadasimplejsp
e crie um arquivo.zip
da pasta. Os nomes são arbitrários; você pode usar os nomes que quiser nos arquivos ou pastas. Você também pode usar outros tipos de arquivamento, incluindo gzip, bzip2, tarball ou arquivo Java. WAR Observe que AWS OpsWorks O Stacks não suporta arquivos tar não compactados. Para implantar várias JSP páginas, inclua-as no mesmo arquivo. -
Carregue o arquivo para um bucket do Amazon S3 e torne o arquivo público. Copie o arquivo URL para uso posterior. Para obter mais informações sobre como criar buckets e fazer upload de arquivos, consulte Comece a usar o Amazon Simple Storage Service.
-
Adicione um aplicativo na pilha e especifique as seguintes configurações:
-
Nome:
SimpleJSP
-
App type –
Java
-
Tipo de repositório –
Http Archive
-
Repositório URL — o Amazon URL S3 do seu arquivo de arquivamento.
Use os valores padrão para as configurações restantes e clique em Add App para criar o aplicativo.
-
-
Implante o aplicativo na instância Java App Server.
Agora você pode acessar o aplicativo URL e visualizá-lo. Se você não especificou um domínio, pode criar um URL usando o endereço IP público da instância ou seu DNS nome público. Para obter o endereço IP público ou o DNS nome público de uma instância, acesse AWS OpsWorks Stacks console e clique no nome da instância na página Instâncias para abrir a página de detalhes.
O resto URL depende do nome curto do aplicativo, que é um nome minúsculo que AWS OpsWorks As pilhas são geradas a partir do nome do aplicativo que você especificou ao criar o aplicativo. Por exemplo, o nome curto de Simple JSP é simplejsp. Você pode obter um nome curto de aplicativo de na página de detalhes.
-
Se o nome curto é
root
, você pode usarhttp://
oupublic_DNS
/appname
.jsphttp://
.public_IP
/appname
.jsp -
Caso contrário, você pode usar
http://
oupublic_DNS
/app_shortname
/appname
.jsphttp://
.public_IP
/app_shortname
/appname
.jsp
Se você especificou um domínio para o aplicativo, URL éhttp://
.domain
/appname
.jsp
O URL exemplo seria algo parecido comhttp://192.0.2.0/simplejsp/simplejsp.jsp
.
Se você quer implantar vários aplicativos para a mesma instância, não deve usar root
como nome curto. Isso pode causar URL conflitos que impedem que o aplicativo funcione corretamente. Em vez disso, atribua um nome de domínio diferente para cada aplicativo.
Implantando um JSP aplicativo com um banco de dados de back-end
JSPas páginas podem usar um JDBC DataSource
objeto para se conectar a um banco de dados de back-end. Você pode criar e implantar um aplicativo usando o procedimento da seção anterior, com uma etapa adicional para configurar a conexão.
A JSP página a seguir mostra como se conectar a um DataSource
objeto.
<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>
AWS OpsWorks Stacks cria e inicializa o DataSource
objeto, o vincula a um nome lógico e registra o nome com um serviço de nomenclatura Java Naming and Directory Interface (). JNDI O nome lógico completo é java:comp/env/
. Você deve especificar a parte do nome atribuída ao usuário adicionando JSON atributos personalizados à configuração da pilha e aos atributos de implantação para definir o user-assigned-name
['opsworks_java']['datasources']
atributo, conforme descrito a seguir.
Para implantar uma JSP página que se conecta a um SQL banco de dados Meu
-
Crie uma pilha com uma camada Java App Server, adicione uma instância ininterrupta em cada camada e inicie-a.
-
Adicione uma layer de banco de dados na pilha. Os detalhes dependem de qual banco de dados você usa.
Para usar uma SQL instância My no exemplo, adicione uma SQL camada My à pilha, adicione uma instância 24/7 à camada e inicie-a.
Para usar uma instância da Amazon RDS (MySQL) como exemplo:
-
Especifique um mecanismo Meu SQL banco de dados para a instância.
-
Atribua o AWS - OpsWorks -DB-Master-Server (
security_group_id
) e AWS - OpsWorks -Java-App-Server (security_group_id
) grupos de segurança para a instância. AWS OpsWorks O Stacks cria esses grupos de segurança quando você cria sua primeira pilha na região. -
Crie um banco de dados chamado
simplejspdb
. -
Verifique se nome de usuário e a senha principais não contêm
&
ou outros caracteres que possam causar um erro no Tomcat.Em particular, durante a inicialização, o Tomcat deve analisar o arquivo de contexto do aplicativo web, que é um XML arquivo que inclui a senha mestra e o nome de usuário. Se a sequência de caracteres incluir um
&
caractere, o XML analisador a tratará como uma XML entidade malformada e lançará uma exceção de análise, que impede que o Tomcat seja iniciado. Para obter mais informações sobre o arquivo de contexto do aplicativo da Web, consulte tomcat::context. -
Adicione um SQL driver My à camada do Java App Server.
-
Registre a RDS instância com sua pilha.
Para obter mais informações sobre como usar RDS instâncias da Amazon com AWS OpsWorks Pilhas, vejaCamada RDS de serviço da Amazon.
-
-
Copie o código de exemplo em um arquivo chamado
simplejspdb.jsp
, coloque o arquivo em uma pasta chamadasimplejspdb
e crie um arquivo.zip
da pasta. Os nomes são arbitrários; você pode usar os nomes que quiser nos arquivos ou pastas. Você também pode usar outros tipos de arquivo, incluindo gzip, bzip2 ou tarball. Para implantar várias JSP páginas, inclua-as no mesmo arquivo. Para obter mais informações sobre como implantar aplicativos de outros tipos de repositório, consulte Origem do aplicativo. -
Carregue o arquivo para um bucket do Amazon S3 e torne o arquivo público. Copie o arquivo URL para uso posterior. Para obter mais informações sobre como criar buckets e fazer upload de arquivos, consulte Comece a usar o Amazon Simple Storage Service.
-
Adicione um aplicativo na pilha e especifique as seguintes configurações:
-
Nome:
SimpleJSPDB
-
App type –
Java
-
Tipo de fonte de dados — OpsWorks(para uma SQL instância My) ou RDS(para uma RDS instância Amazon).
-
Instância de banco de dados — A SQL instância My que você criou anteriormente, que normalmente é chamada de db-master1 (mysql), ou a RDS instância da Amazon, que será nomeada
DB_instance_name
(mysql). -
Database name –
simplejspdb
. -
Tipo de repositório –
Http Archive
-
Repositório URL — o Amazon URL S3 do seu arquivo de arquivamento.
Use os valores padrão para as configurações restantes e clique em Add App para criar o aplicativo.
-
-
Adicione os seguintes JSON atributos personalizados aos atributos de configuração da pilha, em que simplejspdb é o nome abreviado do aplicativo.
{ "opsworks_java": { "datasources": { "simplejspdb": "jdbc/mydb" } } }
AWS OpsWorks O Stacks usa esse mapeamento para gerar um arquivo de contexto com as informações necessárias do banco de dados.
Para obter mais informações sobre como adicionar JSON atributos personalizados aos atributos de configuração da pilha, consulteUsando o Custom JSON.
-
Implante o aplicativo na instância Java App Server.
Agora você pode usar o aplicativo URL para visualizar o aplicativo. Para obter uma descrição de como construir oURL, consulteImplantando um aplicativo JSP.
O URL exemplo seria algo parecido comhttp://192.0.2.0/simplejspdb/simplejspdb.jsp
.
nota
O atributo datasources
pode conter vários atributos. Cada atributo é nomeado com um nome curto de aplicativo e definido para a parte apropriada do nome atribuída ao usuário de um nome lógico. Se você tiver vários aplicativos, poderá usar nomes lógicos separados, o que requer uma personalização JSON semelhante à seguinte.
{ "opsworks_java": { "datasources": { "myjavaapp": "jdbc/myappdb", "simplejsp": "jdbc/myjspdb", ... } } }