0

我需要使用 AWS Lambda 运行 HTTPie 命令

  1. 我为 HTTPie 创建了一个层
  2. 向我的 python 函数添加了层
  3. 从 AWS Lambda 运行我的 HTTPie 命令,如下所示
import subprocess

def lambda_handler(req, context):

result = subprocess.call("/opt/python/bin/http GET https://reqres.in/api/users?page=2", shell=True)

return result

功能日志:

/bin/sh: /opt/python/bin/http: 权限被拒绝

要求:

我使用 HTTPie 而不是请求的原因是我需要对我的请求使用不同的身份验证机制。对于请求,我无法使用其他重要的业务要求的身份验证机制进行 http 调用。以下是我们将使用的一些示例,HTTPie 提供了所有这些插件

签名、ApiAuth、AWS Auth、HMAC、JWTAuth、OAuth、OAuth2 等

到目前为止尝试的解决方案

  • 创建一个包而不是层,为该包分配所有权限,压缩它,将所有权限分配给 zip 以及“chmos -R 777 文件夹”并作为 zip 上传到 lambda。这仍然给了我同样的问题。
  • 在使用 http 之前将此添加到我的代码中
  • 结果 = subprocess.call("chmod -R 777 /opt/python/bin/http", shell=True)
    • chmod:更改“/var/task/lokesh/bin/http”的权限:只读文件系统
    • /bin/sh: /var/task/lokesh/bin/http: 权限被拒绝
4

0 回答 0