ヤマムギ

growing hard days.

*

AWS LambdaのSQSへの自前ポーリングをやめてSQSイベントソーストリガーに変更した

   

以前は、LambdaがSQSからメッセージを受信するには、キューをポーリングしてメッセージを受信する必要がありました。
ポーリングしてキューがあればLambdaを実行するLambdaを動かしたりしていました。

2018年7月にSQSがLambdaのイベントソースとしてサポートされました!
AWS Lambda がサポートするイベントソースに Amazon Simple Queue Service を追加

これにより、ポーリングを実装しなくてもよくなりました。

SQSからキューメッセージを受け取ってRedmine APIへデータ登録していたLambdaを改善したいと思います。

本処理をしているLambdaのトリガーをSQSにします。
IAMロールはSQSとCloudWatchに対してのアクセスを許可しました。

event[Records]

eventで渡されるRecordsの中にはすでにキューメッセージも、receiptHandleも含まれています。

サンプルコード

料金

「この機能には追加料金はかかりませんが、Lambda サービスは SQS キューを連続してロングポーリングするため、標準の SQS 価格設定でこれらの API コールに対して課金されます。」とあるので、ポーリングをAWSがやってくれてはいますが、SQSへのリクエスト課金は発生するということですね。

むやみやたらにポーリングしているわけではなく、かしこい頻度調整をしながらロングポーリングをしているようです。
なので自分でコーディングするよりはきっと効率的でしょう。

詳しくは、「AWS Lambda がサポートするイベントソースに Amazon Simple Queue Service を追加」をご参照ください。

これで余分なLambdaも余分なコードも必要なくなりました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

CloudFrontのVPCオリジンを使用してApplication Load Balancerをプライベートサブネットで起動する

このブログのApplication Load Balancerはパブリックサブネ …

IAMアイデンティティセンター(IIC)のList Assignment APIを確認しました

やりたいことは、IAMアイデンティティセンター(IIC)のユーザー名をキーにして …

Cloud9でAWS CDK環境

最初ローカルに作ろうと思ったのですが、環境依存がというか、Macbookの環境で …

LINE BOT AWARDS 2017に応募しました

LINEの友達追加QRです。 動作のご確認にどうぞ LINE BOT AWARD …

AWS Snowファミリーのジョブ作成画面を確認

使わないのですが、画面を見ておきたかったので確認しました。 Snowファミリージ …

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除

画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらや …

S3 VPCエンドポイント設定前と設定後を確認

S3のVPCエンドポイントを設定した際に、S3バケットのAPIエンドポイントへの …

AWS Systems Manager Session Managerでログを有効にする

AWS Systems Manager Session Managerでのコマン …

kintoneで設定したスケジュールにあわせてlambda(python)からSQSへメッセージを送る

EC2の起動停止をそろそろ手動でやるのも疲れてきそうなのと、やはり停止するのを忘 …