Desenvolva um serviço do Cloud Run localmente no Cloud Code para Cloud Shell

Antes de implementar um serviço no Cloud Run, pode desenvolvê-lo localmente através de um emulador do Cloud Run.

Configurar o seu serviço para desenvolvimento

Se não tiver um ficheiro .vscode/launch.json definido, a caixa de diálogo Executar/depurar no emulador do Cloud Run permite-lhe configurar o lançamento e, em seguida, guarda as definições em .vscode/launch.json. Se tiver um ficheiro .vscode/launch.json configurado, pode editá-lo diretamente.

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

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

    • Apenas as ferramentas de compilação instaladas localmente estão disponíveis para o Cloud Run Emulator
    • Escolha Docker ou Buildpacks como criador e, em seguida, especifique a origem
    • (Opcional) Para especificar quaisquer variáveis de ambiente a transmitir aos contentores em execução, expanda Definições de compilação avançadas e, em seguida, clique para especificar pares de chave-valor.
      Nome Descrição Exemplo
      PORT A porta que o servidor HTTP deve escutar. 8080
      K_SERVICE O nome do serviço do Cloud Run que está a ser executado. hello-world
      K_REVISION O nome da revisão do Cloud Run que está a ser executada. hello-world.1
      K_CONFIGURATION O nome da configuração do Cloud Run que criou a revisão. hello-world
    • (Opcional) Para especificar ligações do Cloud SQL, expanda as Definições avançadas do serviço, clique em Ligações e, de seguida, especifique uma ligação do Cloud SQL por linha.
    • (Opcional) Selecione a opção Tornar o serviço acessível a partir de outros dispositivos na rede local.
    • (Opcional) Se quiser apenas reconstruir e executar o serviço manualmente, em vez de automaticamente quando faz uma alteração, desmarque a opção Reconstruir e executar novamente automaticamente em caso de alterações.

Executar o serviço localmente

  1. Depois de definir as suas preferências, execute o serviço clicando em Executar.

  2. Monitorize o estado da implementação na janela de saída.

    Após a conclusão da implementação, pode ver o serviço em execução abrindo o URL apresentado na janela de saída.

  3. Para ver registos detalhados, mude para a vista detalhada do Cloud Run na janela de saída.

    Painel de saída com hello-world-5 – Detalhado selecionado no menu pendente do canal de saída

  4. Após a conclusão da sessão, clique com o botão direito do rato para usar os seguintes comandos:

    • Ver registos: abra os registos da aplicação de uma implementação específica com o explorador de registos do Cloud Code.
    • Abrir URL: abra o URL do serviço de aplicação de um serviço específico num navegador de Internet.
  5. Se desativou o modo de observação na configuração de lançamento e quiser fazer alterações à aplicação, recompilar e voltar a implementar a aplicação, clique na barra de estado do Cloud Code e, de seguida, clique em Ativar modo de observação.

  6. Para parar a implementação, pode clicar no botão Parar na barra de ações da implementação atual.

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

Armazenar secrets

Se o seu código incluir dados potencialmente confidenciais, como chaves de API, palavras-passe e certificados, armazená-los como segredos pode ajudar a protegê-los. A integração do Secret Manager do Cloud Code permite-lhe armazenar estes segredos em segurança e obtê-los de forma programática. Para ver uma análise detalhada de como pode criar e gerir segredos com o Cloud Code, consulte o guia do Secret Manager.

Personalizar uma configuração launch.json existente

O plug-in do Cloud Code atualiza automaticamente o ficheiro de configuração launch.json quando escolhe uma ação de execução. Para personalizar ainda mais a forma como o seu serviço é executado, pode especificar os seguintes campos no ficheiro .vscode/launch.json:

  • watch: monitoriza as alterações no espaço de trabalho e volta a executar o serviço. O valor predefinido é True.

    O exemplo seguinte mostra o relógio definido como true:

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

    O exemplo seguinte mostra um criador do Docker:

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

    O exemplo seguinte mostra um criador de buildpacks:

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

    O exemplo seguinte mostra como especificar um nome de imagem:

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

    O exemplo seguinte 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 definições de depuração, como o mapeamento de caminhos remotos, para mapear um caminho local para um caminho no contentor remoto.

    O exemplo seguinte mostra uma secção de depuração que indica a localização dos ficheiros de origem:

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