Guia de início rápido para .NET no ambiente flexível do App Engine

Código da região

O REGION_ID é um código que o Google atribui com base na região selecionada ao criar o aplicativo. A inclusão de REGION_ID.r nos URLs do App Engine é opcional para aplicativos existentes e em breve será obrigatória para todos os aplicativos novos.

Para garantir uma transição tranquila, estamos atualizando lentamente o App Engine para usar IDs da região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o aplicativo. Como o ID é opcional para os aplicativos atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para os aplicativos já existentes.

Saiba mais sobre códigos da região.

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 este guia de início rápido, instale o SDK do Cloud e configure um projeto do Cloud para o App Engine:

  1. Faça o download e instale o SDK do Cloud:

    Fazer o download do SDK

    Observação: se o SDK do Cloud já estiver instalado, atualize-o executando o comando a seguir:

    gcloud components update
    
  2. Crie um novo projeto:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    Substitua [YOUR_PROJECT_ID] por uma string de caracteres que identifique seu projeto de forma exclusiva. Por exemplo, my-project-24.

    Verifique se o projeto foi criado:

    gcloud projects describe [YOUR_PROJECT_ID]
    

    Você verá detalhes do projeto parecidos com o seguinte:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. Inicialize seu aplicativo do App Engine com o projeto e escolha a região:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Quando solicitado, selecione a região em que o aplicativo do App Engine será localizado.

  4. Verifique se o faturamento está ativado no projeto. É necessário que uma conta de faturamento esteja vinculada ao projeto para que o aplicativo seja implantado no App Engine.

    Ativar faturamento

    A implantação do ambiente flexível gerará custos enquanto estiver ativa. Limpe o projeto quando terminar para evitar custos contínuos.

  5. Instale os pré-requisitos a seguir:

Locais do App Engine

Como o App Engine é regional, a infraestrutura de execução dos aplicativos está localizada em uma determinada região e é gerenciada pelo Google. Assim, ela fica disponível de modo redundante em todas as zonas dessa região.

Atender aos requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região de execução dos aplicativos. Geralmente, é possível selecionar a região mais próxima aos usuários do aplicativo, mas considere a localização dos outros produtos e serviços do Google Cloud usados pelo aplicativo. Usar serviços em vários locais pode afetar a latência do aplicativo, bem como preços.

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

  • northamerica-northeast1 (Montreal)
  • us-central (Iowa)
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)
  • us-east1 (Carolina do Sul)
  • us-east4 (Norte da Virgínia)
  • southamerica-east1 (São Paulo)
  • europe-west (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zurique)
  • asia-northeast1 (Tóquio)
  • asia-northeast2 (Osaka)
  • asia-northeast3 (Seul)
  • asia-east2 (Hong Kong)
  • asia-south1 (Mumbai)
  • australia-southeast1 (Sydney)

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

Se você já criou um aplicativo do App Engine, é possível visualizar a região seguindo um destes procedimentos:

Para seguir este guia de início rápido, você precisa estar familiarizado com a criação de aplicativos da Web com o C#.

Fazer o download do app Hello World

Criamos um aplicativo Hello World simples para .NET. Assim, você pode ter uma ideia de como implantar um aplicativo no Google Cloud. O app Hello World é semelhante ao criado pelo Visual Studio quando um app vazio do ASP.NET Core é criado. O app de amostra adiciona um arquivo app.yaml. O app.yaml é um arquivo de configuração do App Engine. Nele, você especifica o ambiente de execução e outras configurações do App Engine.

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

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
    

    Outra opção é fazer o download da amostra (em inglês) como um arquivo ZIP e extraí-la.

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

    cd dotnet-docs-samples/appengine/flexible/HelloWorld
    

Execute o Hello World na máquina local

Visual Studio

Para executar o aplicativo Hello World! no seu computador:

  1. Abra dotnet-docs-samples\appengine\flexible\HelloWorld\HelloWorld.sln com o Visual Studio.
  2. Pressione F5.

    Você verá a mensagem "Hello World" do aplicativo de amostra exibida na página.

Linha de comando

Para executar o aplicativo Hello World! no seu computador:

  1. Execute os seguintes comandos no diretório dotnet-docs-samples\appengine\flexible\HelloWorld:
    dotnet restore
    dotnet run
  2. No seu navegador da Web, acesse http://localhost:5000/.

    Você verá a mensagem "Hello World" do aplicativo de amostra exibida na página.

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

Implante e execute o Hello World no App Engine

Visual Studio

Para implantar o aplicativo Hello World:

  1. Abra dotnet-docs-samples\appengine\flexible\HelloWorld\HelloWorld.sln com o Visual Studio.
  2. No "Gerenciador de Soluções", clique com o botão direito do mouse em HelloWorld e selecione Publicar no Google Cloud...
  3. Clique em App Engine Flex.
  4. Clique em Publicar.
  5. Para ver seu aplicativo implantado, acesse o seguinte endereço no seu navegador:

    https://PROJECT_ID.REGION_ID.r.appspot.com

Linha de comando

  1. Execute os comandos a seguir no diretório dotnet-docs-samples\appengine\flexible\HelloWorld:

    dotnet restore
    dotnet publish -c Release
    gcloud app deploy .\bin\Release\netcoreapp2.1\publish\app.yaml
  2. Inicie o navegador e veja o aplicativo em https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse

Nesse momento, a página que exibe a mensagem "Hello World" é enviada por um servidor da Web executado em uma instância do App Engine.

Parabéns! Você implantou seu primeiro aplicativo em .NET no ambiente flexível do App Engine.

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

Limpar

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

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar a página "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir

Conhecer a plataforma inteira

Agora que você sabe como é desenvolver e implantar aplicativos do App Engine, explore o restante do Google Cloud. Você já tem o SDK do Cloud instalado, que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muito mais.

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

Saiba mais sobre o ambiente flexível do App Engine

Listamos alguns tópicos para você continuar aprendendo sobre o App Engine.

Revisão do código do Hello World

O 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. Cada arquivo do aplicativo é descrito em detalhes nesta seção.

Startup.cs

O app Hello World é um aplicativo ASP.NET simples:

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async (context) =>
            {
                string greeting = Configuration["My:Greeting"];
                await context.Response.WriteAsync(greeting);
            });
        }
    }

app.yaml

O arquivo app.yaml descreve a configuração de implantação do aplicativo:

runtime: aspnetcore
env: flex

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

env_variables:
  # The __ in My__Greeting will be translated to a : by ASP.NET.
  My__Greeting: Hello AppEngine!

Neste caso, app.yaml especifica o ambiente de execução usado pelo aplicativo e configura o env: flex, que determina o uso do ambiente flexível.