Tôi đang sử dụng boto3 trong aws lambda để đối tượng fecth trong S3 nằm ở khu vực Frankfurt.Làm thế nào để cấu hình cơ chế ủy quyền nội tuyến với boto3
v4 là cần thiết. nếu không thì báo lỗi sau sẽ trở lại
"errorMessage": "An error occurred (InvalidRequest) when calling
the GetObject operation: The authorization mechanism you have
provided is not supported. Please use AWS4-HMAC-SHA256."
cách Nhận ra để cấu hình signature_version http://boto3.readthedocs.org/en/latest/guide/configuration.html
Nhưng kể từ khi tôi đang sử dụng AWS lambda, tôi không có quyền truy cập vào cấu hình cơ bản tiểu sử
Mã hàm lambda AWS của tôi
from __future__ import print_function
import boto3
def lambda_handler (event, context):
input_file_bucket = event["Records"][0]["s3"]["bucket"]["name"]
input_file_key = event["Records"][0]["s3"]["object"]["key"]
input_file_name = input_file_bucket+"/"+input_file_key
s3=boto3.resource("s3")
obj = s3.Object(bucket_name=input_file_bucket, key=input_file_key)
response = obj.get()
return event #echo first key valuesdf
Có thể định cấu hình signature_version trong mã này không? sử dụng Phiên làm ví dụ. Hay có cách giải quyết nào về vấn đề này không?
Có cách nào để định cấu hình điều này từ tệp không? Tôi hỏi vì tôi đang sử dụng một đoạn mã mà 'boto3' là sự phụ thuộc, vì vậy tôi không có quyền truy cập trực tiếp để thay đổi cuộc gọi' client() '. – bstempi
bạn có thể đặt boto3.session.Session (profile_name = 'profile1') trong đó profile1 là tên của cấu hình được xác định trong tệp .aws/credentials với khóa AWS, mã thông báo, vùng mong muốn và các thông số cần thiết khác – omuthu
Điều gì xảy ra nếu tôi không bằng cách sử dụng khóa AWS và thay vào đó tôi dựa vào dịch vụ siêu dữ liệu của cá thể EC2? – bstempi