3
0

More than 1 year has passed since last update.

LINE BotのWebHookのためのAPI Gateway作成方法

Posted at

概要

  • AWS LambdaとDynamoDBを使ってLINE Botを作ったので、その備忘録の1つです。
  • この記事では、LINE BotのWebHookのためのAPI Gatewayの作成・設定方法を説明します。

環境

  • コンソールでの作業のため、環境構築なし。

API Gatewayの作成方法

  • AWSへログインし、API Gateway -> APIを作成をクリック

image.png

  • APIタイプを選択 -> REST API -> 構築をクリック

image.png

  • You are not authorized to call DescribeVpcEndpointsとエラーメッセージが出ますが無視でOK。

image.png

  • 以下の選択・入力をして、APIの作成をクリック。
    • RESTを選択
    • 新しいAPIを選択
    • API名を入力。今回はapigateway-linebot-sampleとします。
    • エンドポイントタイプをリージョンを選択

image.png

  • アクション -> メソッドの作成をクリック

image.png

  • リストからPOSTを選択し、チェックマークをクリック。

image.png

  • 以下の内容を選択・入力し、保存をクリック。
    • 統合タイプ : Lambda関数を選択
    • Lambda プロキシ統合の使用 : チェックを入れる
    • Lambda リージョン : 任意のリージョン(今回はap-northeast-1)
    • Lambda 関数 : 今回のLINE Bot用に作成した関数(今回はlinebot_auto_reply_sample)
    • デフォルトタイムアウトの使用 : チェックを入れる

image.png

  • 『API Gatewayに、Lambda関数を呼び出す権限を与えようとしています』と表示されますので、OKをクリック。

image.png

  • 次に、CORSを有効化します。
  • アクション -> CORSの有効化をクリック

image.png

  • 選択肢はデフォルト設定のままで、CORSを有効にして既存のCORSヘッダーを置換をクリック。

image.png

  • メソッド変更の確認メッセージが表示されるので、はい、既存の値を置き換えますをクリック。

image.png

  • CORSが有効化されます。
  • 次に、セキュリティ対策として、LINEからのリクエスト以外を受け付けないようにする設定をします。
  • POSTをクリック。

image.png

  • メソッドリクエストをクリック

image.png

  • 以下の設定を入力し、メソッドの実行をクリック。
    • リクエストの検証 : クエリ文字列パラメータおよびヘッダーの検証
    • HTTP リクエストヘッダー : ヘッダーを追加する -> 名前はx-line-signature, 必須にチェック

image.png

  • メソッドリクエストのヘッダーにx-line-signatureが追加されていることがわかります。
  • これにより、x-line-signatureがヘッダーに含まれていない場合(=LINE以外からのリクエストの場合)は、リクエストを拒絶し、Lambdaの不正な呼び出しを防ぐことができます。

image.png

  • 次に作成したAPI Gatewayをデプロイします。
    • 何か設定を変更した際も、デプロイしないと反映されないので、ご注意ください。
  • POST -> アクション -> APIのデプロイをクリック

image.png

  • 以下の設定を行い、デプロイをクリック
    • デプロイされるステージ : 新しいステージ
      • 以前作成したステージがある場合はそちらを使用してもOK。状況に応じて選択してください。
    • ステージ名 : 何でもOK(今回はdevelop)

image.png

  • デプロイすると、ユーザーは、ウェブアプリケーションファイアウォール (WAFV2) の ListWebACL および AssociateWebACL 権限を持っていません。WAF 以外のステージ設定は引き続き変更できます。とエラーメッセージが表示されますが、無視でOK。

image.png

  • デプロイが成功し、エンドポイントURLが作成されました。

image.png

  • このURLを、LINE BotのWebhookに設定すればOKです。
    • LINE開発コンソールへログイン -> 作成したLINE Bot -> Messaging API設定 -> Webhook設定に入力
  • 以上で、LINE BotのWebHookのためのAPI Gateway作成方法は完了です。
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0