1

我正在使用无服务器现在作为通过 Slack API 调用 AWS 的工具。该脚本在本地和服务器上运行良好,但我在使用 Now Platform 使其工作时遇到问题。

这是我得到的错误:

{"message":"The security token included in the request is invalid."}

关于这个有几个问题,但他们似乎没有回答我的问题,因为我看到 AWS 凭证已正确配置 running cat ~/.aws/credentials

我正在使用AWS 请求身份验证

auth = AWSRequestsAuth(aws_access_key=os.environ['AWS_ACCESS_KEY_ID'],
                                   aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
                                   aws_host='restapiid.execute-api.us-east-1.amazonaws.com',
                                   aws_region='us-east-1',
                                   aws_service='execute-api')

headers = {"Content-Type":"application/json"}
response = requests.post('https://restapiid.execute-api.us-east-1.amazonaws.com/path', auth=auth, headers=headers, data=payload)

由于错误通常是 403,我怀疑是一个Signature expired问题,但我不知道如何将 Now 时间戳与 AWS 同步。

4

1 回答 1

0

我的错:os.environ['AWS_ACCESS_KEY_ID']并且os.environ['AWS_SECRET_ACCESS_KEY']是Now 平台中的保留变量。当您使用 slack API 或简单脚本在本地使用它们时,一切都很好,因为它将使用配置文件,但是现在您需要存储和重命名它们:

now secret add ak "[your aws access key]"
now secret add sk "[your aws secret key]"
now -e AWS_AK=@ak  -e AWS_SK=@sk

所以你可以在你的代码中使用它们

os.environ['AWS_AK']
os.environ['AWS_SK']
于 2019-07-25T07:23:38.430 回答