質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1143閲覧

Lambdaを使ってLineMessagingAPIのプッシュメッセージのエラーを解決したい

hi-roto

総合スコア8

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2021/11/27 17:04

エラー状況

Test Event Name (unsaved) test_linebot_push_message Response { "errorMessage": "unknown keywords: :event, :context", "errorType": "Function<ArgumentError>", "stackTrace": [ "/var/task/send_iamhome.rb:7:in `handler'" ] } Function Logs START RequestId: xxxxxxxxxxxxxxxxxxxxxxxxx Version: $LATEST Error raised from handler method { "errorMessage": "unknown keywords: :event, :context", "errorType": "Function<ArgumentError>", "stackTrace": [ "/var/task/send_iamhome.rb:7:in `handler'" ] }

コード

require 'line/bot' CHANNEL_ACCESS_TOKEN = ENV["CHANNEL_ACCESS_TOKEN"] CHANNEL_SECRET = ENV["CHANNEL_SECRET"] TO = ENV["TO"] def handler(event:, context:) message = { type: 'text', text: 'Hello World' } client = Line::Bot::Client.new { |config| config.channel_token = CHANNEL_ACCESS_TOKEN      config.channel_secret = CHANNEL_SECRET } response = client.push_message(TO, message) p response end

テストコード

{ "device": { "type": "button", "deviceId": "xxxxxxxxxxxxxxx", "attributes": { "projectRegion": "ap-northeast-1", "projectName": "soracom-lte-m-button-for-linebot", "placementName": "linebot-lamda-trigger", "deviceTemplateName": "linebot-lamda-trigger" }, "deviceArn": "arn:aws:iot1click:us-west-2:998734314217:devices/xxxxxxxxxx" }, "stdEvent": { "clickType": "SINGLE", "reportedTime": "2021-11-27T15:24:23.516Z", "certificateId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "remainingLife": 96.71996448798221, "testMode": false } }

実現したいこと
自分宛にlambdaからLineMessagingAPIを使ってプッシュメッセージを送信したい

分からないこと
handler(event:, context:)event:, context:の意味

状況
ローカル環境でdef handlerの部分を除いて上記開発コードをターミナルで実行した場合はきちんと自分宛にプッシュメッセージを送信することができています。
しかし、コードをzip化してLambdaにアップロードし、ランタイム設定と呼び出される関数名の名称を合わせのち、上記テストを実行したところ、エラーが発生しています。
Lambda関数のトリガーについてはAWS-1clickを使用しており、イベントに表示されるコードをそのままコピペしてテストを実行しています。

handler(event:, context:)event:, context:の意味が理解できておらず、ご助言いただけたいです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決できました。
結論は、コンソール上でコードを編集した際に、「Deploy」ボタンを押さずに「テスト」を押していたため、編集したコードが反映されていませんでした。

きちんと「デプロイ」ボタンを押した後に、「テスト」を実行したところ問題なくlambda関数が実行されました。
お騒がせしました。

投稿2021/11/28 13:47

hi-roto

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問