【小ネタ】GA前のAWS Lambda event sourcesを再び表示させるには

2015.04.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、せーのです。今日は先日GA(general availability : 一般リリースのこと)されましたAWS Lambdaでちょっと困ったことがあったのでご紹介します。

Preview時代のイベントソースが見当たらない

GAになる前は「Preview」というリビジョンで提供されていたLambdaですが、GA後にコンソール画面を見てみるとイベントソースの部分がこのような表示になっています。

lambdaGA1

試してみるとlambda自体はイベントソースに紐付いているようなのですが、肝心のイベントソースが見当たりません。 読んでみると「4/9より前に更新されているS3イベントソースは非表示となります」と書かれています。なんでだ。なんでだーーーーーーーー!!

叫んでも特に解決しなかったのでどうにかしないといけません。できればこの見えないイベントソースを消して、新たにイベントソースを作りたいところですが本来イベントソースを削除する場所は

lambdaGA2

ここにあり、イベントソースが見えないと消すことも出来ないわけです。さあどうしよう。

S3のevent sourceはS3からも設定できる

実はこのイベントソース、Lambda functionから「このファンクションのトリガーとなるイベントは」と設定する方法の他に、S3のバケットから「このバケットへのイベントで何を動かすか」という方法でも設定できるのです。 S3のコンソール画面からトリガーとなるバケットを選択し、Propertyタブを押して[Event]のトグルを開くと

lambdaGA3

ようやくイベントソースが見えました。開いてみると

lambdaGA4

なにやら注意書きが書かれています。要約すると「今までInvocation Roleを使ってLambda functionの実行を許可してましたが、Invocation Roleは廃止になる予定なのでこの設定をsaveするとInvocation Roleをdropしていい感じに権限をつけます」ということらしいです。こちらの記事にもあったように、今までは「Lambdaが他のAWSリソースを触るためのロール」の他に「Lambdaを実行させるためのロール」も設定していたのですが、これがどうやら廃止になるようです。なるほど、権限の問題で表示されなかったのですね。ということで早速Saveボタンを押します。

lambdaGA5

この状態でLambdaのコンソールにもう一度戻ってみると

lambdaGA6

おお、ようやく出てきました。

まとめ

いかがでしたでしょうか。これはなかなか気が付かないところでしたね。 ところで上のスクリーンショットの数々の中に実はもう一つ問題があるのですが、それは現在調査中ですので、分かり次第また記事にいたします。