Desenvolver um serviço do Cloud Run localmente no Cloud Code para VS Code

Antes de implantar um serviço no Cloud Run, você pode desenvolvê-lo localmente usando um emulador do Cloud Run.

Como configurar o serviço para desenvolvimento

Se você não tiver um arquivo .vscode/launch.json definido, a caixa de diálogo Executar/depurar no emulador do Cloud Run permite configurar o lançamento e salva as configurações em .vscode/launch.json. Se você tiver um arquivo .vscode/launch.json configurado, edite-o diretamente.

Para executar o serviço localmente, especifique a configuração:

  1. Abra a paleta de comandos (pressione Ctrl/Cmd+Shift+P ou clique em Visualizar > Paleta de comandos) e execute o comando Executar no emulador do Cloud Run.
  2. Na caixa de diálogo "Run/Debug no Cloud Run Emulator", defina as especificações para sua configuração:

    • Somente ferramentas de build instaladas localmente estão disponíveis para o emulador do Cloud Run
    • Escolha Docker ou Buildpacks como seu builder e especifique a origem.
    • (Opcional) Para especificar variáveis de ambiente a serem transmitidas aos contêineres em execução, expanda Configurações avançadas de build e clique para especificar pares de chave-valor.
      Nome Descrição Exemplo
      PORT A porta que o servidor HTTP vai detectar. 8080
      K_SERVICE O nome do serviço do Cloud Run em execução. hello-world
      K_REVISION O nome da revisão do Cloud Run em execução. hello-world.1
      K_CONFIGURATION O nome da configuração do Cloud Run que criou a revisão. hello-world
    • (Opcional) Para especificar conexões do Cloud SQL, expanda Configurações avançadas do serviço, clique em Conexões e especifique uma conexão do Cloud SQL por linha.
    • (Opcional) Marque a opção Tornar o serviço acessível de outros dispositivos na rede local.
    • (Opcional) Se você quiser reconstruir e executar o serviço manualmente, em vez de automaticamente quando fizer uma mudança, desmarque a opção Reconstruir e executar automaticamente em caso de mudanças.

Como executar o serviço localmente

  1. Depois de definir as configurações preferenciais, execute o serviço clicando em Run.

  2. Se solicitado, autentique suas credenciais para executar e depurar um aplicativo localmente.

  3. Monitore o status da sua implantação na janela de saída.

    Após a conclusão da implantação, veja o serviço em execução abrindo o URL exibido na janela de saída.

  4. Para ver registros detalhados, alterne para a visualização detalhada do Cloud Run na janela de saída.

    Painel de saída com "hello-world-5 - Detailed" selecionado no menu suspenso do canal de saída

  5. Depois que a sessão for concluída, clique com o botão direito do mouse para usar os seguintes comandos:

    • Ver registros:abra os registros de aplicativo de uma implantação específica com a Análise de registros do Cloud Code.
    • Abrir URL:abre o URL do serviço de aplicativo de um serviço específico em um navegador da Web.
  6. Se você desativou o modo de observação na configuração de inicialização e quer fazer mudanças no aplicativo, reconstruir e reimplantar o aplicativo, clique na barra de status do Cloud Code e em Ativar o modo de observação.

  7. Para interromper a implantação, clique no botão Parar na barra de ações da implantação atual.

    Barra de ações para implantação do Cloud Run

Como armazenar chaves secretas

Se o código incluir dados potencialmente sensíveis, como chaves de API, senhas e certificados, armazená-los como secrets pode ajudar a protegê-los. Com a integração do Secret Manager do Cloud Code, é possível armazenar e buscar esses secrets de forma programática. Para saber como criar e gerenciar secrets com o Cloud Code, consulte o guia do Secret Manager.

Como personalizar uma configuração launch.json

O plug-in do Cloud Code atualiza automaticamente o arquivo de configuração launch.json quando você escolhe uma ação de execução. Para personalizar ainda mais a execução do seu serviço, especifique os seguintes campos no arquivo .vscode/launch.json:

  • watch: monitora as mudanças no espaço de trabalho e executa novamente o serviço. "True" por padrão.

    O exemplo a seguir mostra o relógio definido como true:

    "watch": true,
    
  • build: especifique o builder (Docker, jibMaven, jibGradle ou buildpacks) para criar suas imagens.

    O exemplo a seguir mostra um builder do Docker:

    "build": {
      "docker": {
        "path": "Dockerfile"
      }
    },
    

    O exemplo a seguir mostra um criador de buildpack:

    "build": {
      "buildpacks": {
        "path": "src/requirements.txt",
        "builder": "gcr.io/buildpacks/builder:v1"
      }
    },
    
  • image: especifique o nome da imagem a ser usada.

    O exemplo a seguir mostra como especificar um nome de imagem:

      "image": "hello-world",
    
  • service: especifique o serviço do Cloud Run a ser usado.

    O exemplo a seguir mostra como especificar um nome de serviço, uma porta e limites de recursos:

    "service": {
      "name": "hello-world",
      "containerPort": 8080,
      "resources": {
        "limits": {
          "memory": "256Mi"
        }
      }
    },
    
  • debug: especifique configurações de depuração, como mapeamento de caminhos remotos, para mapear um caminho local para um caminho no contêiner remoto.

    O exemplo a seguir mostra uma seção de depuração que indica o local dos arquivos de origem:

    "debug": {
      "sourceFileMap": {
        "${workspaceFolder}": "/app"
      }
    }
    

Receber suporte

Para enviar feedback, faça uma pergunta no Stack Overflow. Se você for um cliente do Google Cloud, poderá registrar tíquetes pelos canais de suporte padrão do Google Cloud.