0
現在、私はローカルで作成したが、S3に保存されているSklearnファイルを利用する必要があるAmazon Web Services Lambda関数で作業しています。私は実際にこれを行う方法に困惑してきた、私はboto3のドキュメントからいくつかの異なる方法を試してみたが、これはタイムアウトエラーになり:AWSのS3に格納されたpickledファイルを使用するLambda
import boto3
import pickle
s3 = boto3.client("s3", region_name="us-west-1")
response = s3.get_object(Bucket="mybucket", Key="bin_files/scaler.pkl")
loaded_file = pickle.load(response["Body"])
ファイルに他方の結果でこれをしませやっている間エラーが見つかりました:
with open(key, 'wb') as data:
s3.Bucket(event['bucket']).download_fileobj(key, data)
"errorMessage": "[Errno 2] No such file or directory:
'bin_files/scaler.pkl'"
どのようにすればいいですか?
OSError:[Errno 30]読み取り専用ファイルシステム: 'scaler.pkl'私が使用しているラムダ関数にはフルアクセス権があります。私はS3でやっているべきことがありますか? – cgclip
ラムダを使用しているので、パスに '/ tmp'を追加できます。私はそれが許可を持っているべきだと思う。 **コード**: 'open( '/ tmp/scaler.pkl'、 'wb')をデータとして使用: –
あなたが提案した調整を行いました:' open( "/ tmp/scaler.pkl"、 'wb ')データとして: s3.Bucket( "mybucket).download_file(" bin_files/scaler.pkl "、data)'これでエラーメッセージが表示されます: "ファイル名は文字列でなければなりません" – cgclip