以下でできた。
s3: ServiceResource = boto3.resource('s3') bucket = s3.Bucket(bucket_name) bucket.meta.client.get_bucket_location(Bucket=self.bucket_name)['LocationConstraint']
以下でできた。
s3: ServiceResource = boto3.resource('s3') bucket = s3.Bucket(bucket_name) bucket.meta.client.get_bucket_location(Bucket=self.bucket_name)['LocationConstraint']
setterは生成しないのがあるべきと思ったが、生成される。。 Issueはあるけど2ヶ月以上放置されているので今後も直る可能性は低そう。
参考: github.com
none_item: None float_item: 1e-09
上記のようにyamlを定義してPyYamlで読み込むと。それぞれ'None', '1e-09'という文字列になってしまう。。 なので、以下のように修正した。
none_item: # None float_item: 0.000000009
もっといいやり方ないのかねぇ。。
参考:
原因は aws configure コマンドで設定したシークレットアクセスキーなどの情報が間違っていたため。 IAMロールで権限を与えていたのでそもそもaws configureは不要だった。なので、.awsフォルダを削除したら直った。
参考:
tensorflowのtf.data.TFRecordDatasetにS3に置いたTFRecordのパスを渡すと読み込んでくれるという機能がある。
これを使うと curl returned error code 77 が出た。77はSSL証明書のエラーらしい。
今回はEC2からのアクセスで、man in the middle攻撃を受けることはないので環境変数S3_VERIFY_SSL=0を設定して解決した。
今までEC2-S3間の通信はAWS内のみ通ると思っていたけど、VPCエンドポイントがない場合、一度インターネットに出るらしい。 そうすると通信速度が落ちるしセキュリティ的にも問題になりうるので VPCエンドポイントは必ず作るようにしておかねば。。
参考:
前はIDE上で図が見えたんだけど、なぜか何も表示されなくなった。。
import matplotlib matplotlib.use('TkAgg')
をmatplotlibをimportする前に実行すると表示されるようになった。けど、別窓で表示されるのでちょっと不便。
参考: