サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■WordPress ■PowerShell ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
SQSからLambda関数を起動するテストをしてみます。
まずはSQSを作成します。
タイプ | FIFO |
---|---|
名前 | MyQueue.fifo |
Lambda関数を作成します。
関数の作成 | 一から作成 |
---|---|
名前 | MyFunctionFromSQS |
ランタイム | Python 3.9 |
引数で受け取ったeventをprintするようにします。
lambda_function.py | ||
|
LambdaのトリガーにSQSを指定します。
エラーがでました。
エラーメッセージは以下でした。
指定された実行ロールには、SQS で ReceiveMessage を呼び出す権限がありません。
権限が足りないとのことです。 作る手順の問題かもしれないので、SQSからLambda関数をトリガーに指定してみます。
同じエラーが出ました。
Lambdaの画面の下に以下のメッセージが表示されていました。
SQSトリガから読み込むためには、実行ロールに適切な権限が必要です。
Lambdaの設定のアクセス権限を開きます。
ロール名に「myFunctionFromSQS-role-u258berm」という表示があります。クリックします。
画面を下にスクロールさせます。
許可ポリシーにAWSLambdaBasicExecutionRole-dcecf9c...と表示されています。
編集をクリックします。
ビジュアルをクリックします。
許可をさらに追加をクリックし、sqsを選択します。
読み取りの中にReceiveMessageというものがありました。
ReceiveMessageにチェックをします。
メッセージが表示されました。
「このアカウント内のいずれか」をチェックします。
「次へ」をクリックします。
SQSが追加されています。「変更を保存」をクリックします。
再度Lambdaのトリガーを設定してみます。
DeleteMessageも必要なようです。DeleteMessageを追加したところ、GetQueueAttributesが必要というエラーが出たためGetQueueAttributesも追加しました。
トリガーにSQSを設定することができました。
SQSにメッセージを送信してみます。
メッセージが送信できると画面上部に「メッセージは送信され、受信可能です。」と表示されました。
CloudWatchのログを確認してみます。
print(event)で表示されて内容に、SQSに送信したメッセージも表示されています。
Copyright (C) 2023 ymlib.com