gpt4 book ai didi

perl - 无法在 AWS lambda 上的 @INC 中找到 URI/Escape.pm

转载 作者:行者123 更新时间:2023-12-02 16:59:48 25 4
gpt4 key购买 nike

我在 python 中有一个 AWS Lamba 函数,它使用 shell 脚本生成一个 url。shell脚本的输入参数由python代码提供。shell 脚本使用 perl 对所需的 URL 进行 URL 编码。当我在本地运行时,这个脚本运行良好;但是在 AWS 上,lamba 看起来像没有安装 perl MURI。如果有其他方法可以做到这一点或任何其他建议,我将不胜感激。我正在通过以下命令进行 URL 编码。我在 lambda 日志中看到的错误是:

Can't locate URI/Escape.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.

脚本中的代码是

cred=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$PARM1/$DATE/$PUBLIC_REGION/$SERVICE_NAME/request")
FULLDT=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$FULLDT")
SESSION_TOKEN=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$SESSION_TOKEN")

最佳答案

however on AWS lamba looks like the perl MURI is not installed

你几乎是对的。 -M 是一个命令行选项,告诉 Perl 加载模块。完整的模块名称是“URI::Escape”。

而且,是的,该模块不是标准 Perl 安装的一部分,因此您需要单独安装它,作为您用来设置 lambda 运行环境的任何过程的一部分。最简单的方法是可能要运行:

cpan URI::Escape

但我不确定这将如何转化为 lambda 环境。

关于perl - 无法在 AWS lambda 上的 @INC 中找到 URI/Escape.pm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54613945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com