尝试运行AWS Glue Python Shell作业,但出现连接超时错误
答案 0 :(得分:0)
您似乎没有在VPC中添加secretsmanager端点。由于流量不会离开AWS network,因此您的Glue作业的VPC内部将无法访问互联网。因此,如果要连接到Secretsmanager,则需要将其添加到VPC。
答案 1 :(得分:0)
嗨, 我们使AWS Glue Python Shell可以处理所有依赖项,如下所示。胶水还具有 awscli 依赖性以及 boto3
在执行胶水作业期间,将awscli和boto3 whl文件添加到 Python库路径。此选项很慢,因为它必须下载和安装依赖项。
参考:AWS Wrangler Glue dependency build
colorama==0.4.3 docutils==0.15.2 rsa==4.5.0 s3transfer==0.3.3 PyYAML==5.3.1 botocore==1.19.23 pyasn1==0.4.8 jmespath==0.10.0 urllib3==1.26.2 python_dateutil==2.8.1 six==1.15.0
pip download -r requirements.txt -d libs
cd libs zip ../boto3-depends.zip *
将 boto3-depends.zip 上载到s3,并将其添加到胶水作业的路径参考文件路径 注意:它是引用文件路径,而不是 Python库路径
占位符代码,用于安装最新的awcli和boto3并加载到AWS Python Glue Shell中。
import os.path import subprocess import sys # borrowed from https://stackoverflow.com/questions/48596627/how-to-import-referenced-files-in-etl-scripts def get_referenced_filepath(file_name, matchFunc=os.path.isfile): for dir_name in sys.path: candidate = os.path.join(dir_name, file_name) if matchFunc(candidate): return candidate raise Exception("Can't find file: ".format(file_name)) zip_file = get_referenced_filepath("awswrangler-depends.zip") subprocess.run() # Can't install --user, or without "-t ." because of permissions issues on the filesystem subprocess.run(, shell=True) #Additonal code as part of AWS Thread https://forums.aws.amazon.com/thread.jspa?messageID=954344 sys.path.insert(0, '/glue/lib/installation') keys = for k in keys: if 'boto' in k: del sys.modules[k] import boto3 print('boto3 version') print(boto3.__version__)
谢谢 萨拉斯