【问题标题】:utf errors when running script from AWS Lambda but not when running from manual ssh从 AWS Lambda 运行脚本时出现 utf 错误,但从手动 ssh 运行时却没有
【发布时间】:2018-05-26 16:06:57
【问题描述】:

我有一个 python AWS Lambda 监听 github webhook。当它收到一个 SSH(通过 paramiko)到远程服务器并运行脚本来重新生成一个静态网站。

网站的某些文件名包含 utf8 字符。重新生成失败,因为它无法写入带有这些字符的文件。

它是一个python静态站点生成器,它会输出这个错误。
'ascii' codec can't encode character '\xe1' in position

但是,如果我手动 ssh 进入服务器并运行完全相同的脚本,它会完美运行。

我是否需要以某种方式在 lambda 中配置 paramiko 以允许使用 utf8?还有什么可能导致这种差异?

感谢您的帮助。

【问题讨论】:

  • 请将您的问题移至Super User(在此处删除,在此处重新发布)。这是off-topic here
  • 我没有这样做的动力。

标签: amazon-web-services aws-lambda paramiko


【解决方案1】:

解决了。当我通过我的 shell 登录时,我认为它传递了我的 LANG 和 LC_ALL 环境变量,它们设置为en_GB.utf8。当 AWS 上的 paramiko 登录时,它使用 POSIX 而不是 utf8。解决方案是在我通过 paramiko 发送的所有命令前面加上LANG=en_GB.utf8 LC_ALL=en_GB.utf8

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2021-03-12
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多