Executando verificação de segurança...
1

[DÚVIDA] - AWS Glue Erro na execução de JOB - Python Script + Execução de Binário .jar

Oi gente, estou com um script python rodando no AWS Glue que usa a lib "jaydebeapi", que basicamente é uma API está me ajudando a fazer conexão em um banco oracle, o problema é o seguinte:
meu código python precisa executar um .jar para executar um driver especifico que a Oracle pede para acessar esse meu banco especificoo (é uma variação de Oracle DB para netsuite)
na hora que o glue tenta rodar meu script, ele quebra na hora de abrir o meu .jar com essa função (a variavel jar_local_path é uma variavel global que já estou carregando o caminho desse .jar):

def connect_to_oracle_jdbc(connection_string, user, password):
    conn = jaydebeapi.connect(
        "com.netsuite.jdbc.openaccess.OpenAccessDriver",
        connection_string,
        {"user": user, "password": password},
        jars=[jar_local_path]
    )
    return conn

o erro é esse:

JVMNotFoundException: No JVM shared library file (libjvm.so) found. Try setting up the JAVA_HOME environment variable properly.

até o momento eu entendi que preciso configurar o JAVA_HOME para um jdk, mas não sei como setar isso em um JOB no AWS GLUE, alguém já teve esse problema? poderiam me ajudar?

Carregando publicação patrocinada...
1

Isso parece só uma questão de environment, talvez as env vars disponíveis para o script não tem a $JAVA_HOME exportada. Às vezes manipulando a variável $PATH resolve muita coisa. Não sei como você inicia esse script Python, nem em que SO. Vou supor que é linux, então você poderia fazer isso no início do script:

import os;

os.environ["JAVA_HOME"] = "/path/to/java-stuff"  # exemplo: /usr/lib/jvm/jdk1.7.0_25_x64

ou, diretamente antes do script:
JAVA_HOME=/path/to/java-stuff /path/to/my/script.py
isso acima vai exportar a variável e ela estará disponível inclusive pra sessões subshell

1

Obrigado felipsmartins, realmente o Python não está localizando a variável JAVA_HOME, porém o meu problema é: como fazer isso numa JOB do Aws Glue? tipo, não estou conseguindo localizar isso aqui, já pesquisei um monte, perguntei para uns amigos, e não achei nada.

1

O primeiro exemplo que dei (injetar o path em runtime) não funcionaria? O que vc quer dizer especificamente com

"não estou conseguindo localizar isso aqui"

Você sabe o path da JDK?
Se sim, o primeiro exemplo que dei deveria funcionar.
Se não, você tem certeza que existe um JDK instaldo realmente no sistema?