私は、フランクフルト地域にあるS3のオブジェクトにaws lambdaでboto3を使用しています。承認メカニズムをboto3とインラインで設定する方法
v4が必要です。それ以外の場合は次のエラーがsignature_version http://boto3.readthedocs.org/en/latest/guide/configuration.html
を設定するには、しかし、私はAWSのラムダを使用しておりますので、私は基本的な構成プロファイルへのアクセス
私のAWSのラムダ関数のコードを持っていない方法を実現
"errorMessage": "An error occurred (InvalidRequest) when calling
the GetObject operation: The authorization mechanism you have
provided is not supported. Please use AWS4-HMAC-SHA256."
を返します。
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
このコードでsignature_versionを設定することは可能ですか?セッションを使用します。またはこれに対処する方法はありますか?代わりに、デフォルトのセッションを使用しての
ファイルからこれを設定する方法はありますか? 'boto3'が依存関係のコードを使用しているので私は尋ねています。したがって、' client() '呼び出しを変更するための直接アクセス権がありません。 – bstempi
boto3.session.Session(profile_name = 'profile1')を設定できます。ここで、profile1は.aws/credentialsファイルで定義されているAWSキー、トークン、希望地域、その他の必要なパラメータを持つプロファイルの名前です – omuthu
AWSキーを使用して、代わりにEC2インスタンスのメタデータサービスに頼っていますか? – bstempi