用于Lambda函数中API调用的Python Lambda基本身份验证

2024-10-06 12:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用AWS Lambda对外部系统进行api调用。这将用于收集文件到达S3存储桶时的相关信息。在

尝试进行restapi调用时收到403禁止的错误。我认为在格式化身份验证所需的用户名和密钥时存在问题。python3.6lambdas是否需要以特定的方式进行连接?在

import boto3
import requests

s3 = boto3.resource('s3')
myurl = "https://my-url/"

# These will be stored in AWS KMS for production system
username = 'username'
passkey = 'passkey'

headers = {
            "Accept": "application/json",
            "Content-Type": "application/json; charset=utf-8"
        }

def lambda_handler(event, context):
    bucket = s3.Bucket('mybucket')


    for obj in bucket.objects.all():
        file_name = obj.key.split('/', 2).pop()
        file_name_no_ext = file_name[:-5]


        if file_name != '':
            if file_name.endswith('.json'):
                Final_File_name = file_name_no_ext + '.mxf'
                url = myurl + 'mypath/'+ Final_File_name
                response = requests.get(url, headers=headers, auth=(username, passkey))

Tags: nameinimportawsjsonurlfors3