
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:
- PyCharm Pro instalado na sua máquina Mac/Linux
- 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]
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.pubCopie 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).

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:

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".

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.

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.

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

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.

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.

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:

Edite novamente as configurações do interpretador existente:

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

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 .