api開発でchaliceを使用しております。
各種サービスにアクセスする処理を以下のように独自モジュールとして定義していました。
terminal
1├── app.py 2├── chalicelib 3│ ├── __init__.py 4│ ├── dynamodb.py 5│ └── s3.py 6├── requirements.txt 7└── vendor
しかし、例えばS3で、@app.routerでデコレートした関数内でget_objectやput_objectが存在していない場合、IAMロールを付与してくれないことに気づきました。
さらに言うと、generate_presigned_urlでURLを生成しても、この関数自体はs3:Getに該当しないのでIAMロールが付与されずに、URLにアクセスしても403になってしまう始末です。一応ダミーのget_objectするメソッドを作成することで回避はできます。
そこで気になっているのが、@app.on_s3_eventデコレーションです。
公式ドキュメント等で調べてはみたのですが、このデコレーションの使い方がイマイチわかりませんが、この関数を使うことで現在の不都合が全て解決するのではないかと想像しております。
本題ですが、@app.on_s3_eventデコレーションの使い方を教えて欲しいです。
使い方もですが何のためにこのデコレーションが存在しているのかがイマイチ分かっていません。
よろしくお願いします。
あなたの回答
tips
プレビュー