Lambda Python 3.8 GPG解密找不到gpg二进制文件
Lamnda Python 3.8 GPG decryption can not find gpg binary
我正在尝试使用 lambda 函数来解密进入 S3 的文件,我下载文件时没有问题,但是当我尝试解密它们时找不到 gpg。我已尝试同时使用 python-gnupg
和 gnupg
,但均未能提及 gnupg 在 OS 上不可用。在 python 中我的 isntatiating GPG 代码下方
它适用于 python 3.7,但如果我升级到 3.8,Lambda 使用 AMazon Linux 2,它不包含 gpg。我怎样才能让它在 Lambda 中与 python 3.8 一起使用?
gpg = gnupg.GPG(gnupghome='/tmp')
错误:
OSError: Unable to run gpg (gnupg) - it may not be available
我发现的所有示例似乎都没有做任何额外的事情。我正在为我的功能打包 python-gnugp 包和所有其他 python 包
Lambda 中是否提供 gpg 二进制文件?我怎样才能使这项工作?
您必须捆绑 gpg 二进制文件及其依赖项并将它们交付到您的包中。在我的包中,我将它们捆绑到一个名为 'gpg' 的文件夹中,然后当我在我的 Lambda 函数中使用 gpg 时,我这样做:
def lambda_handler(event, context):
old = os.environ.get("LD_LIBRARY_PATH")
if old:
os.environ["LD_LIBRARY_PATH"] = "./gpg" + ":" + old
else:
os.environ["LD_LIBRARY_PATH"] = "./gpg"
gpg = gnupg.GPG(gnupghome='/tmp', gpgbinary='./gpg/gpg2', verbose=False)
我正在尝试使用 lambda 函数来解密进入 S3 的文件,我下载文件时没有问题,但是当我尝试解密它们时找不到 gpg。我已尝试同时使用 python-gnupg
和 gnupg
,但均未能提及 gnupg 在 OS 上不可用。在 python 中我的 isntatiating GPG 代码下方
它适用于 python 3.7,但如果我升级到 3.8,Lambda 使用 AMazon Linux 2,它不包含 gpg。我怎样才能让它在 Lambda 中与 python 3.8 一起使用?
gpg = gnupg.GPG(gnupghome='/tmp')
错误:
OSError: Unable to run gpg (gnupg) - it may not be available
我发现的所有示例似乎都没有做任何额外的事情。我正在为我的功能打包 python-gnugp 包和所有其他 python 包
Lambda 中是否提供 gpg 二进制文件?我怎样才能使这项工作?
您必须捆绑 gpg 二进制文件及其依赖项并将它们交付到您的包中。在我的包中,我将它们捆绑到一个名为 'gpg' 的文件夹中,然后当我在我的 Lambda 函数中使用 gpg 时,我这样做:
def lambda_handler(event, context):
old = os.environ.get("LD_LIBRARY_PATH")
if old:
os.environ["LD_LIBRARY_PATH"] = "./gpg" + ":" + old
else:
os.environ["LD_LIBRARY_PATH"] = "./gpg"
gpg = gnupg.GPG(gnupghome='/tmp', gpgbinary='./gpg/gpg2', verbose=False)