Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Desenvolvimento remoto com PyCharm e Google Cloud

By Gad BenramJul 28, 20214 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

1 bdxltaqkftyo6rue7gd6wa

Tutorial rápido para configurar o PyCharm e executar o código em uma instância remota do GCP usando um interpretador remoto via ssh

Qual é o objetivo?

Escrever o código no seu notebook, mas executá-lo em uma máquina remota do Google Cloud com mais RAM e CPU.

No desenvolvimento de uma aplicação Python, costuma ser conveniente rodar o código em uma instância do GCP (AI Notebook / Google Compute Engine). Isso é especialmente útil porque executar código de Machine Learning (ML) ou de processamento de dados normalmente exige uma máquina parruda, com várias CPUs e bastante RAM.

Outra vantagem é que, ao rodar o código remotamente, ele se autentica nos demais serviços do Google Cloud Platform usando a service account associada à instância. Ao concluir este tutorial, você conseguirá executar o PyCharm no seu Mac com o código rodando remotamente em uma VM do GCP.

Pré-requisitos

Para começar, você vai precisar de:

  1. PyCharm Pro instalado na sua máquina Mac/Linux
  2. Uma conta GCP ativa

Mãos à obra

Passo 1: configure uma chave ssh no seu Mac [1]

Execute o comando a seguir no terminal do seu Mac/Linux para gerar um novo par de chaves ssh:

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME]

1 r06nwvz9wruvwklgwj 6yq

Optei por não definir uma passphrase para a chave e a chamei de temp_key.

Formate a chave pública

Mostre o conteúdo da chave pública do par que você acabou de criar com o seguinte comando:

cat ./ssh/temp_key.pub

Copie o conteúdo da chave para a área de transferência, do trecho ssh-rsa (incluído) até o sinal de "=" (antes do nome de usuário).

1 m n27uzc8h8aivavyczy a

Abra um editor de texto qualquer e formate a chave assim:

ssh-rsa [KEY VALUE]= [USER_NAME]

Guarde esse texto para usar depois.

Passo 2: crie ou edite uma VM no GCP

Agora você precisa de uma máquina na nuvem. Eu gosto de usar AI Notebooks porque essas máquinas já vêm com um ambiente Python de IA pré-instalado, com várias bibliotecas de data science, ML e do Google Cloud. Para criar um notebook, siga este guia.

Vale lembrar que os AI Notebooks (agora parte do Vertex AI) criam, nos bastidores, uma instância do Compute Engine. Depois de criar uma instância pura do Compute Engine ou um AI Notebook, é preciso editá-la para liberar o acesso remoto via SSH. Isso permite que o PyCharm copie arquivos para a sua máquina e se conecte ao interpretador Python.

Editando a máquina de um AI Notebook

A instância do notebook chamada "my-instance" tem os seguintes detalhes:

1 fxpja9fsj 2b zxqwo4n7q

Clicando em "VIEW VM DETAILS" e depois em "EDIT", você consegue alterar a configuração do compute engine que hospeda o AI Notebook. Role até SSH Keys e abra a opção "show and edit".

1 c 1c vq izuw4nli9ykrow

Clique em "Add item" e cole a chave ssh formatada, incluindo o nome de usuário no final. Se deu tudo certo, o nome de usuário aparecerá à esquerda da chave.

1 p04b ctdojiepetr7yf 9a

Você também pode configurar um IP externo estático para a máquina, evitando que o IP público mude toda vez que ela for reiniciada.

Passo 3: configure o PyCharm!

Sua máquina já aceita conexões SSH com o par de chaves que você criou. Só falta liberar o PyCharm para fazer o deploy e executar o código nessa máquina remota. Copie o IP externo da máquina, que aparece nos detalhes da VM enquanto ela está em execução.

1 xelbs1iorhcgvc3jnaahjg

Em seguida, abra PyCharm > Preferences > Project:[nome] > Python interpreter > engrenagem de Options > add.

1 lu5iza1kxtamoolwg9whga

Em Host, coloque o endereço IP externo da máquina e, em Username, o nome do usuário que você definiu ao criar a chave. Clique em "Next" para o PyCharm tentar estabelecer a conexão com a VM. Depois, basta informar as credenciais corretas.

1 hvwjy fdihcgaof fdsc1g

Em "private key file", aponte para o caminho da chave privada ssh (no nosso caso, /[user]/.ssh/temp_key — aquela sem a extensão .pub).

Clique em next e pronto! Você verá que o interpretador agora é o seu ambiente Python remoto, no canto inferior direito da tela. Da primeira vez, pode levar alguns minutos para copiar os arquivos auxiliares do PyCharm para a máquina remota e sincronizar os ambientes Python.

1 dbx9mlwi3w44hh2ytjnkcw

Avançado: múltiplos ambientes Python

Em alguns casos, há mais de um ambiente Python instalado na máquina remota. Por exemplo, é comum ter um ambiente conda no AI Notebook. Você pode escolher qual deles usar editando a configuração do interpretador remoto.

Acesse as configurações do interpretador pelo menu inferior direito do PyCharm:

1 t4ywmlyyumxjdp0t3jyfgg

Edite novamente as configurações do interpretador existente:

1 a3qlc6qcmnnyav5b g7v9w

Em "python interpreter path", cole o caminho da sua instalação do Python na máquina remota.

1 0ucmormtf2sklwocpwlp g

Resumo

Além deste tutorial, há alguns recursos que vale a pena compartilhar. Para se aprofundar na configuração avançada do interpretador Python no PyCharm, confira este guia da JetBrains. Quer saber mais sobre configurações avançadas da sua chave SSH em instâncias do GCP? Veja este conteúdo.

Boa produtividade!


Obrigado pela leitura! Para acompanhar a gente, siga o DoiT Engineering Blog , o canal da DoiT no LinkedIn e o canal da DoiT no Twitter . Para ver oportunidades de carreira, acesse https://careers.doit.com .