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 Cloud de Confiance serviços.
Antes de começar
Se estiver a tentar executar o código localmente pela primeira vez, pode não ter todas as autorizações necessárias para aceder à imagem a partir do registo de contentores suportado que está a usar.
Consulte a documentação do registo de contentores suportado sobre como obter acesso. Pode configurar o Docker para aceder ao Artifact Registry através do auxiliar de credenciais da CLI gcloud:
gcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION pelo nome da região do seu repositório de contentores, por exemplo, us-west2.
Teste localmente
Pode testar localmente através do Docker, do Docker com Cloud de Confiance acesso, do emulador do Cloud Code ou da CLI do Google Cloud. Selecione o separador adequado para ver instruções.
Docker
Para testar a imagem de contentor localmente com o Docker:
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,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.A variável de ambiente
PORTespecifica a porta que a sua aplicação vai usar para ouvir pedidos HTTP ou HTTPS. Este é um requisito do contrato de tempo de execução do contentor. Neste exemplo, usamos a porta 8080.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.
Docker com acesso ao Google Cloud
Se estiver a usar Cloud de Confiance bibliotecas de cliente para integrar a sua aplicação com os serviços Cloud de Confiance e ainda não tiver protegido esses serviços para controlar o acesso externo, pode configurar o seu contentor local para autenticar com os serviços Cloud de Confiance através das credenciais predefinidas da aplicação.
Para executar localmente:
Consulte as instruções para configurar uma chave de conta de serviço.
As seguintes flags de execução do Docker injetam as credenciais e a configuração do seu sistema local no contentor local:
- Use a flag
--volume(-v) para injetar o ficheiro de credenciais no contentor (pressupõe que já definiu a variável de ambienteGOOGLE_APPLICATION_CREDENTIALSno seu computador):-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
- Use o sinalizador
--environment(-e) para definir a variávelGOOGLE_APPLICATION_CREDENTIALSno contentor:-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
- Use a flag
Opcionalmente, use este comando
rundo 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
apresentado no exemplo acima é uma localização razoável para colocar as suas credenciais no contentor./tmp/keys/FILE_NAME.json
No entanto, outras localizações de diretórios também funcionam. O requisito crucial é que a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALStem de corresponder à localização de montagem de ligação no contentor.Tenha também em atenção que, com alguns Cloud de Confiance 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.
Emulador do Cloud Code
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 Cloud Run no seu IDE. O emulador permite-lhe configurar um ambiente representativo do seu serviço em execução no Cloud Run.
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.
- Instale o Cloud Code para o VS Code ou um IDE da JetBrains.
- Siga as instruções para desenvolver e depurar localmente no seu IDE.
- VS Code: desenvolvimento e depuração locais
- IntelliJ: desenvolvimento e depuração locais
CLI gcloud
A CLI do Google Cloud contém um ambiente de desenvolvimento local para emular o Cloud Run, que pode criar um contentor a partir da origem, executar o contentor na sua máquina local e recriar automaticamente o contentor após alterações ao código fonte.
Para iniciar o ambiente de programação local:
Altere o diretório para o diretório que contém o código-fonte do seu serviço.
Invocar o comando:
Se existir um Dockerfile no diretório local, este é usado para criar o contentor. Se não estiver presente nenhum Dockerfile, o contentor é criado com os buildpacks do Google Cloud.gcloud beta code dev
Para ver o serviço em funcionamento, visite http://localhost:8080/ no seu navegador.
Se especificou uma porta personalizada com a opção --local-port, lembre-se de
abrir o navegador nessa porta.
Para parar o servidor local:
- Mac OS e Linux: Control-C
- Windows: Control-Break
Personalize a configuração do serviço
Pode personalizar a configuração do Cloud Run do serviço em execução localmente através de um ficheiro YAML. O formato YAML é o mesmo que pode ser usado para implementar um serviço do Cloud Run, mas apenas suporta um subconjunto das definições do serviço do Cloud Run. gcloud beta
code dev procura e usa qualquer ficheiro que termine em *.service.dev.yaml no diretório atual. Se não forem encontrados ficheiros, o sistema usa qualquer ficheiro que termine com *.service.yaml.
Pode configurar as seguintes definições para o desenvolvimento local:
- Variáveis de ambiente
- Limites de memória do contentor
- Limites da CPU do contentor
- Nome do serviço
- Contas de serviço
O campo do contentor image não é necessário para o desenvolvimento local, porque a imagem é criada e fornecida ao serviço quando o comando é executado.
Pode usar o seguinte ficheiro de exemplo service.dev.yaml para o desenvolvimento local:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: my-service-name spec: template: spec: containers: - env: - name: FOO value: bar
Teste com credenciais
Para conceder autorização ao contentor para usar Cloud de Confiance by S3NS serviços, tem de conceder ao contentor uma credencial de acesso.
Para conceder ao contentor acesso a uma credencial através da sua própria conta, inicie sessão através do gcloud e use a flag
--application-default-credential:gcloud auth application-default login gcloud beta code dev --dockerfile=PATH_TO_DOCKERFILE --application-default-credential
Para dar as credenciais da aplicação como uma conta de serviço, use a flag
--service-account:gcloud beta code dev --dockerfile=PATH_TO_DOCKERFILE --service-account=SERVICE_ACCOUNT_EMAIL
Confirme que o código está a ser executado localmente
Quando testa localmente no Cloud Run, pode confirmar no seu código que o contentor está a ser executado localmente verificando a variável de ambiente K_REVISION, que o Cloud Run disponibiliza a todos os contentores.
Docker
Para confirmar que está a executar o seu código localmente na CLI do Google Cloud, pode
tentar consultar a variável de ambiente K_REVISION, mas, como não foi
definido, não vai estar presente nenhum valor.
Docker com acesso ao Google Cloud
Se usou os valores exatos da secção acima no passo 3 para confirmar que está a executar o código localmente na CLI do Google Cloud, pode consultar a variável de ambiente K_REVISION e procurar o valor dev-00001 para confirmar que está a ser executado localmente.
Emulador do Cloud Code
Para confirmar que está a executar o seu código localmente no Cloud Code, pode consultar a variável de ambiente K_REVISION e procurar um valor de local para confirmar que está a ser executado localmente.
CLI gcloud
Para confirmar que está a executar o seu código localmente na CLI Google Cloud, pode
consultar a variável de ambiente K_REVISION e procurar um valor que comece
com dev- para confirmar que está a ser executado localmente.
O que se segue?
- Para saber como resolver problemas de uma aplicação do Cloud Run localmente, consulte o tutorial de Resolução de problemas local de um serviço do Cloud Run.
- Para saber como implementar os contentores criados, siga as instruções em Implementar serviços.