【发布时间】:2019-01-22 08:24:31
【问题描述】:
我需要我的 lambda 调用 API 网关,并在我的云形成模板中将以下代码作为 lambda 的内联代码。
from requests_aws4auth import AWS4Auth
def handler(event,context):
client = boto3.client('sts')
responseAssumeRole = client.assume_role(
DurationSeconds=3600,
RoleArn='arn',// real arn of the api gateway invocation role
RoleSessionName='Bob',
)
credentials = responseAssumeRole['Credentials']
auth = AWS4Auth(aws_access_key=responseAssumeRole['Credentials']['AccessKeyId'],
aws_secret_access_key=responseAssumeRole['Credentials']['SecretAccessKey'],
aws_host='host.execute-api.us-east-1.amazonaws.com',
aws_region='us-east-1',
aws_service='execute-api')
headers= {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}
response = requests.get('https://host.execute-api.us-east-1.amazonaws.com/test',
auth=auth, headers=headers)
这给了我以下错误
No module named 'requests_aws4auth'
也欢迎使用 aws 凭据创建身份验证的任何解决方案或替代方法。
【问题讨论】:
-
Amazon Web Services 版本 4 身份验证库
pip install requests-aws4auth -
@RoshanBagdiya 在导入之前如何在 lambda 中进行 pip 安装??
标签: python python-3.x amazon-web-services aws-lambda python-3.6