Testes locais

Durante o desenvolvimento, pode executar e testar a imagem do contentor localmente antes da implementação. Pode usar o Cloud Code ou o Docker instalado localmente para executar e testar localmente, incluindo a execução local com acesso aos Google Cloud serviços.

Execução num emulador do Knative Serving

O plug-in Cloud Code para o VS Code e os IDEs JetBrains permite-lhe executar e depurar localmente a sua imagem de contentor num emulador do Knative Serving no seu IDE. O emulador permite-lhe configurar um ambiente representativo do seu serviço em execução no Knative Serving.

Pode configurar propriedades como a atribuição de CPU e memória, especificar variáveis de ambiente e definir ligações à base de dados do Cloud SQL.

  1. Instale o Cloud Code para o VS Code ou um IDE da JetBrains.
  2. Siga as instruções para desenvolver e depurar localmente no seu IDE.

Executar localmente com o Docker

Para testar a imagem de contentor localmente com o Docker:

  1. Use o comando do Docker:

    PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL

    Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo, gcr.io/cloudrun/hello.

    A variável de ambiente PORT especifica a porta que a sua aplicação vai usar para ouvir pedidos HTTP ou HTTPS. Este é um requisito do Container Runtime Contract. Neste exemplo, usamos a porta 8080.

  2. Abra http://localhost:9090 no navegador.

Se está a trabalhar com contentores pela primeira vez, recomendamos que reveja o guia de introdução ao Docker. Para saber mais sobre os comandos do Docker, consulte a documentação do Docker.

Execução local com o Docker com acesso aos serviços Google Cloud

Se estiver a usar Google Cloud bibliotecas cliente para integrar a sua aplicação com Google Cloud serviços e ainda não tiver protegido esses serviços para controlar o acesso externo, pode configurar o seu contentor local para fazer a autenticação com Google Cloud serviços através de uma chave de conta de serviço.

Para executar localmente:

  1. Consulte o artigo Chave da conta de serviço para obter ajuda na configuração das suas credenciais.

  2. As seguintes flags de execução do Docker injetam as credenciais e a configuração do seu sistema local no contentor local:

    1. Use a flag --volume (-v) para injetar o ficheiro de credenciais no contentor (pressupõe que já definiu a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS no seu computador):
      -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
    2. Use o sinalizador --environment (-e) para definir a variável GOOGLE_APPLICATION_CREDENTIALS no contentor:
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
  3. Opcionalmente, use este comando run do Docker totalmente configurado:

    PORT=8080 && docker run \
    -p 9090:${PORT} \
    -e PORT=${PORT} \
    -e K_SERVICE=dev \
    -e K_CONFIGURATION=dev \
    -e K_REVISION=dev-00001 \
    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \
    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \
    IMAGE_URL

    Tenha em atenção que o caminho

    /tmp/keys/FILE_NAME.json
    apresentado no exemplo acima é uma localização razoável para colocar as suas credenciais no contentor.

    No entanto, outras localizações de diretórios também funcionam. O requisito crucial é que a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS tem de corresponder à localização de montagem de ligação no contentor.

    Tenha também em atenção que, com alguns Google Cloud serviços, pode querer usar uma configuração alternativa para isolar a resolução de problemas local do desempenho e dos dados de produção.

O que se segue?

Para saber como implementar os contentores criados, siga as instruções em Implementar serviços.