【发布时间】:2019-07-01 02:15:25
【问题描述】:
我正在尝试在 Amazon Redshift 中创建 Python UDF,并且我已成功创建 UDF,没有出现错误。我还成功地为这个 UDF 创建了所需的库。但是当我执行 UDF 时,我得到了错误:
没有名为 pyffx 的模块。请查看 svl_udf_log 了解更多信息
我已从 pypi.org 下载库并将其上传到 Amazon S3。这是我用来下载库的链接:
https://pypi.org/project/pyffx/#files
create library pyffx
language plpythonu
from 's3://aws-bucket/tmp/python_module/pyffx-0.3.0.zip'
credentials
'aws_iam_role=iam role'
region 'us-east-1';
CREATE OR REPLACE FUNCTION schema.ffx(src VARCHAR)
RETURNS VARCHAR
STABLE
AS $$
import pyffx
src = unicode(src)
value=(src)
l=len(value)
e = pyffx.String(b'secret-key', alphabet='abcedefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', length=l)
return e.encrypt(value)
$$ LANGUAGE plpythonu;
【问题讨论】:
-
create library pyffx命令执行没有错误?而且,大概,您将您的实际 IAM 角色放在credentials行中?您是否将pyffx-0.3.0.tar.gz文件转换为.zip格式? -
是的,创建库 pyffx 执行时没有错误。是的,我已将实际的 IAM 角色放入凭证中。是的,我使用下面的在线转换工具将 .tar.gz 转换为 .zip。 zamzar.com/convert/tar-to-zip
标签: python amazon-web-services amazon-redshift user-defined-functions