Guia de início rápido do Java no ambiente flexível do App Engine

Neste guia de início rápido, você aprenderá a criar um pequeno aplicativo do App Engine que exibe uma mensagem curta.

Antes de começar

Antes de executar e implantar a amostra, siga estas etapas:

  1. Use o Console do GCP para criar um novo projeto e um aplicativo do App Engine, além de ativar o faturamento:
    Acessar o App Engine

    Quando solicitado, selecione uma região para o aplicativo do App Engine e ative o faturamento.

  2. Instale os seguintes pré-requisitos:
    1. Faça o download e a instalação do git.
    2. Faça o download e a instalação do Cloud SDK. Siga as instruções na página do Cloud SDK para inicializar e definir o código do seu projeto do GCP na ferramenta de linha de comando gcloud:
      Fazer o download do SDK
    3. No guia de início rápido, o Apache Maven é usado para criar, executar e implantar o app de amostra. Para detalhes sobre como instalar o Maven, consulte Como usar o Apache Maven e o plug-in do App Engine.

Locais do App Engine

O App Engine é regional. Isso significa que a infraestrutura de execução dos aplicativos está em uma determinada região e é gerenciada pelo Google para estar disponível de modo redundante em todas as zonas dessa região.

Os seus requisitos de latência, disponibilidade ou durabilidade são os principais fatores considerados para selecionar a região em que os aplicativos serão executados. Em geral, você escolhe a região mais próxima dos usuários do app. No entanto, pense também no local dos outros produtos e serviços do GCP utilizados pelo app. Se você usa os serviços em vários locais, a latência e o preço do app podem ser afetados.

O App Engine está disponível nas seguintes regiões:

  • northamerica-northeast1 (Montreal)
  • us-central (Iowa)
  • us-west2 (Los Angeles)
  • us-east1 (Carolina do Sul)
  • us-east4 (Virgínia do Norte)
  • southamerica-east1 (São Paulo)*
  • europe-west (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Frankfurt)
  • asia-northeast1 (Tóquio)
  • asia-east2 (Hong Kong)
  • asia-south1 (Mumbai)
  • australia-southeast1 (Sydney)

* Para os clientes que usam a região de São Paulo, todos os contratos de nível de serviço (SLA, na sigla em inglês) de produtos regionais permanecerão em vigor. No entanto, funcionalidades de várias regiões e entre regiões que abrangem América do Norte e América do Sul podem sofrer uma redução temporária de disponibilidade ou desempenho.

Não é possível alterar a região de um aplicativo depois de defini-la.

Você poderá visualizar a região se já tiver criado um aplicativo do App Engine. Basta executar o comando gcloud app describe ou abrir o painel do App Engine no Console do GCP. A região do seu aplicativo do App Engine será listada em http://[YOUR_PROJECT_ID].appspot.com.

Neste guia de início rápido, presume-se que você já instalou o Java Development Kit 8.

Fazer o download do app Hello World

Criamos um app Hello World simples para Java. Com ele, é possível ter uma noção rápida de como implantar um app no ambiente flexível do App Engine. Siga estas etapas em uma linha de comando para fazer o download do Hello World na sua máquina local.

Faça o download do app de amostra e acesse o diretório dele:

  1. Clone o repositório do app de amostra Hello World na máquina local.

    git clone https://github.com/GoogleCloudPlatform/getting-started-java
    

    Se preferir, faça o download da amostra como um arquivo zip e extraia o código.

  2. Acesse o diretório que contém o código de amostra:

    cd getting-started-java/helloworld-servlet
    

Como executar o Hello World na máquina local

Para executar o aplicativo Hello World no seu computador:

  1. Inicie o servidor da Web local Jetty usando o plug-in do Jetty Maven:

    mvn jetty:run-exploded
    
  2. No navegador da Web, digite este endereço:

    http://localhost:8080

Você verá a mensagem Hello World do app de amostra na página.

Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.

Implantar e executar o Hello World no App Engine

Para implantar o aplicativo Hello World no ambiente flexível do App Engine, siga estas etapas:

  1. Implante o app Hello World. Basta executar os seguintes comandos do diretório helloworld:
    gcloud config set project YOUR_PROJECT_ID
    mvn appengine:deploy
  2. Abra o navegador e visualize o aplicativo em http://YOUR_PROJECT_ID.appspot.com.
    gcloud app browse
Nesse momento, a página que exibe a mensagem “Hello World” é enviada por um servidor da Web em execução em uma instância do App Engine.

Parabéns! Você implantou seu primeiro app Java no ambiente flexível do App Engine.

Nas próximas seções, veja informações sobre a limpeza e links para as possíveis próximas etapas.

Limpeza

Exclua seu projeto do GCP para não ser cobrado pelos recursos usados nele.

  1. No Console do GCP, acesse a página "Projetos".

    Acessar a página Projetos

  2. Na lista de projetos, selecione um e clique em Excluir projeto.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

A seguir

Conheça toda a plataforma

Agora que você já sabe como desenvolver e implantar aplicativos no App Engine, é possível expandir os horizontes e conhecer o restante do GCP. Você já tem o Cloud SDK instalado e, com ele, as ferramentas para interagir com os produtos como Cloud SQL, Cloud Storage, Cloud Datastore e muito mais.

Para ver um passo a passo sobre como criar um aplicativo que usa toda a plataforma, em vez de somente o App Engine, confira nosso guia de início rápido sobre a criação de um app do Bookshelf.

Saiba mais sobre o ambiente flexível do App Engine

Aqui vão alguns tópicos para você continuar aprendendo sobre o App Engine.

Revisão do código do Hello World

Hello World é o app mais simples possível do App Engine. Nele, há apenas um serviço e uma versão, e todo o código é armazenado no diretório raiz. Nesta seção, cada arquivo do app é descrito em detalhes.

HelloServlet.java

No arquivo HelloServlet.java é especificado um padrão de URL que descreve onde o app receberá solicitações e responde a todas elas com a mensagem "Hello World".

@SuppressWarnings("serial")
@WebServlet(name = "helloworld", value = "/")
public class HelloServlet extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    PrintWriter out = resp.getWriter();
    out.println("Hello, world - Flex Servlet");
  }
}

app.yaml

No arquivo app.yaml, você encontra detalhes sobre a configuração de implantação de um aplicativo:

runtime: java
env: flex

handlers:
- url: /.*
  script: this field is required, but ignored

runtime_config:  # Optional
  jdk: openjdk8
  server: jetty9

manual_scaling:
  instances: 1

O ambiente de execução usado pelo aplicativo é especificado em app.yaml. Ele também contém a instrução env: flex, que determina o uso do ambiente flexível no aplicativo.

pom.xml

No Hello World também é fornecido um arquivo pom.xml com informações sobre o projeto, como dependências e destino da versão.

<project>                               <!-- REQUIRED -->

  <modelVersion>4.0.0</modelVersion>    <!-- REQUIRED -->
  <packaging>war</packaging>            <!-- REQUIRED -->

  <groupId>com.example.flex.helloworld</groupId>
  <artifactId>helloworld-servlet</artifactId> <!-- Name of your project -->
  <version>1.0-SNAPSHOT</version>       <!-- xx.xx.xx -SNAPSHOT means development -->

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source> <!-- REQUIRED -->
    <maven.compiler.target>1.8</maven.compiler.target> <!-- REQUIRED -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <failOnMissingWebXml>false</failOnMissingWebXml> <!-- REQUIRED -->
    <appengine.maven.plugin>1.3.2</appengine.maven.plugin>
    <jetty.maven.plugin>9.4.3.v20170317</jetty.maven.plugin>
  </properties>

  <parent>                              <!-- Get parameters and allow bulk testing -->
    <artifactId>getting-started-java</artifactId>
    <groupId>com.example</groupId>
    <version>1.0.0</version>
    <relativePath>..</relativePath>
  </parent>

  <dependencies>
    <dependency>                        <!-- REQUIRED -->
      <groupId>javax.servlet</groupId>  <!-- Java Servlet API -->
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>           <!-- Provided by the Jetty Servlet Container -->
    </dependency>
  </dependencies>

  <build>
    <!-- For hot reload of the web application when using an IDE Eclipse / IDEA -->
    <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>

    <plugins>

      <plugin>                          <!-- Used for local debugging -->
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty.maven.plugin}</version>
      </plugin>

      <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>${appengine.maven.plugin}</version>
        <configuration>
          <!-- deploy configuration -->
<!--
          <deploy.promote>true</deploy.promote>                           <!~~ DEFAULT value ~~>
          <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>   <!~~ DEFAULT value ~~>
 -->
        </configuration>
      </plugin>

    </plugins>
  </build>
</project>
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para documentos Java