2017-02-27 13 views
3

私はS3に2つのバケットを持っています。キャンペーン写真とキャンペーン写真がサイズ変更されました。私が作成した enter image description hereラムダ機能付きアマゾンS3バケットでサムネイルを作成

:ThumbnailCreatorRoleを(私はここで何かが欠けていると思う)作成した

enter image description here

:このようなものを2人のルックスのため

enter image description here

権限ラムダ関数は、hereのコードを使用して、ファイル名フォーム "CreateThumbnail.js"を "index.js"に変更しました。作成する上で、トリガーを設定し

enter image description here

- ので、私のアプリのユーザーはバケットに画像をアップロードする際、サムネイルを作成する必要があります。

enter image description here

を私は機能をテストするときは、 (amazonのラムダウェブサイトのテストボタンを使用して)初めて動作しますが、ユーザーが自分のアプリからイメージをアップロードしても、amazonsウェブサイトのs3バケットにイメージをアップロードしても動作しません。

私は「テスト」ボタンで二度目の機能をテストしようとすると、私は(はい、私はサムネイルバケットから古いリサイズ-HappyFace.jpgを削除した)このエラーが出る:

enter image description here

私は何を忘れていますか?

答えて

0

この問題の解決策は、政策でした。上記のテストのタイムアウトエラーは、タイムアウト制限を25秒に増やすことで解決できます。

ポリシーを設定する方法

ゴーIAMへ=>役割=>新しい役割を作成します。=>ロールタイプ=> AWSラムダ=>選択ポリシーを添付 "AmazonS3FullAccess" で今すぐ

ラムダ=>設定タブでラムダ関数を選択=>ロール:既存のロールを選択=>作成したロールを選択

これで終了します。 :)

は、既存の画像のサムネイルを作成します。

は、あなたが彼らのためにサムネイルを作成したいあなたのバケット内の既存の画像を、持っていること?解決策:新しいバケットを作成します。古いバケットに移動し、すべてのイメージ=>カットを選択します。新しい一時的に作成されたバケットに移動して貼り付けます。一時的なバケットで新しく貼り付けたすべてのイメージを再度選択します。>切り取り - 古いバケットに戻ってイメージを貼ります=>これはラムダ関数をトリガーし、すべてのイメージに対して新しいサムネイルを作成します。これで、一時的に作成されたバケットを削除できます。あなたは終わった。 :)

0

あなたが困難に遭遇した場合は、(あなたの写真に示されている)Monitoringタブに移動し、ログファイルへのリンクをクリックしてください。彼らはうまくいくらかの情報をあなたに与えるでしょう。

実際には、まずAWSのドキュメントからTutorial: Using AWS Lambda with Amazon S3を実装することをお勧めします。

動作していることを確認したら、特定のニーズ(バケツ、権限など)に合わせて変更してください。

また、あなただけのラムダをスキップして、のようなサービスリサイズ自動画像を使用することができます。

ログから
2

を、それはあなたのラムダ関数と思われます要求を処理するのに時間がかかりすぎる。タイムアウトを長くしてからテストしてみてください。設定タブ - >詳細設定 - >タイムアウトからタイムアウトを設定できます。

enter image description here

+0

thx、それはタイムアウトを増やすのに役立ちます(私はそれを25に設定しました)。バケツ全体のラムダをどのようにトリガできますか?私は新しいイメージをアップロードしましたが、トリガーがすでに "ObjectCreated"に設定されていても、サムネイルは作成されませんでした。どうすればバケット全体の機能を実行できますか? – Suisse

+1

その他の理由もあります。あなたが間違ったイベントトリガーのタイプを設定したり、ラムダの役割にs3Accessを与えなかったりしています。クラウドウォッチのログを見てみる –

関連する問題