LoginSignup
3
2

More than 5 years have passed since last update.

Clova Skill開発 with AWS Lambda: その1 LambdaとAPI Gatewayの設定編

Last updated at Posted at 2019-03-25

概要

Clovaスキルを制作するにあたって、Clovaから送られてくるRequestを処理しResponseを返すwebhook部分をAWSのLambdaで実装する方法を記載したいと思います。

Clovaスキルのロジック処理だけでなく、LINE Messaging APIのロジック処理をLambdaで実装する方法を数回に分けて説明したいと思います。

今回は、ClovaスキルからアクセスするAWSのLambda、API Gatewayの設定を説明したいと思います。

今回行うこと

  • AWSの設定
    • Lambdaの設定
    • API Gatewayの設定

AWSの設定

Lambdaの設定

AWSデベロッパーコンソールにログインして、AWS Lambdaのページを開きます。

作成するLambdaのリージョンを指定する必要があるので、今回は「東京(ap-northeast-1)」を選択します。

「関数の作成」をクリックして新規のLambda関数を作成します。

img_01.png

「一から作成」を選択

  • 関数名:「myClovaTest」
  • ランタイム:「Node.js 8.10」
  • 実行ロールの選択または作成:「基本的なLambdaアクセス権限で新しくロールを作成」

※ 実行ロールは、実際には使用用途によって事前にIAMなどから制作して該当のロール指定する様にしたほうが良いですが、今回は割愛します。

※ ランタイムはasync/awaitを使用したいのでNode.js 8.10を指定します。

上記、設定をして「関数の作成」をクリックします。

img_02.png

「myClovaTest」という名前のLambda関数が作成されました。画面左上のARNがこのLambda関数にアクセスするためのアドレスになります。(※Alexaスキルなどの場合はこのARNをwebhookに指定しますが、今回はClovaスキルからのアクセスになるので、以下で説明しますがAPI Gatewayを介して作成したLambdaにアクセスすることになります。)

img_03.png

Clovaスキルからアクセスするためには、今回作成したLambdaに直接アクセスするのではなく、AWS API Gatewayを介してLambdaにアクセスします。ではAPI Gatewayの設定に移っていきます。

API Gatewayの設定

AWSデベロッパーコンソールの「サービス」から「API Gateway」を入力し「API Gateway」のページを開きます。

作成したLambdaのリージョンと合わせて、こちらもリージョンを「東京(ap-northeast-1)」が選択されているか確認します。

「APIの作成」をクリックして新規のLambda関数を作成します。

img_04.png

APIの作成

APIの各項目を設定してAPIを作成します。

  • Choose the protocol:「RESET」
  • 新しいAPIの作成:「新しいAPI」
  • 名前と説明
    • API名:「myClovaTestAPI」※わかりやすい任意のAPIの名前
    • 説明:このAPIの任意の説明
    • エンドポイントタイプ:「リージョン」

「APIの作成」をクリック

img_05.png

リソースの作成

「アクション」>「リソースを作成」

  • プロキシリソースとして設定: チェックしない
  • リソース名:api
  • リソースパス:/api
  • API Gateway CORSを有効にする:チェック

「リソースの作成」をクリック

img_06.png

メソッドの作成

「/api」を選択して「アクション」>「メソッドを作成」

  • プルダウン:POST(を選択して有効化)

/api - POST セットアップ

  • 統合タイプ:Lambda関数
  • Lambda プロキシ統合の使用:チェック
  • Lambda リージョン:ap-northeast-1(※上記で作成したLambdaのリージョンを指定)
  • Lambda 関数:myClovaTest (※上記で作ったLambda関数の名前)
  • デフォルトのタイムアウトの使用:チェック

「保存」をクリック

img_07.png

「API Gatewayに、Lambda関数を呼び出す権限を与えようとしています」とのウィンドウが表示されるので「OK」をクリック。

img_08.png

ステージの作成とAPIのデプロイ

リソースメニューの「/api」>「POST」を選択「アクション」>「APIのデプロイ」をクリック

img_09.png

■ ステージの作成

  • デプロイされるステージ:「新しいステージ」
  • ステージ名:「production」※任意の名前
  • ステージの説明:ステージの説明
  • デプロイメントの説明:デプロイメントの説明

「デプロイ」をクリック

img_10.png

ステージエディターにURLが表示されます

以下の様に作成したproductionステージの画面に遷移します。

URLの呼び出し:https://xxxxxxxxxxxxxxxx.ap-northeast-1.amazonaws.com/production という様に表示されています。

img_11.png

実際にClovaからアクセスするアドレスは「メソッドの作成」で作成した「/api」にPOSTアクセスするのでhttps://xxxxxxxxxxxxxxx.ap-northeast-1.amazonaws.com/production/apiというようにメソッドを設定した「api」を末尾につけて上げる必要があります。

「ステージ」>「production」クリック > 「/api」>「POST」をクリックして、URLの呼び出しを確認してみます。

img_12.png

URLの呼び出しが https://xxxxxxxxxxxxxxx.ap-northeast-1.amazonaws.com/production/api になって、作成した「/api」がついたURL担っています。後術するClovaスキルの設定で「ExtensionサーバーのURL」には、このURLをしてするので、メモしておきましょう。

LambdaがAPI Gatewayと連携できているかの確認

以上でLambdaとAPI Gatewayの設定が完了しました。実際にLambdaとAPI Gatewayが連携できているか、作成した「myClovaTest」のLamdbaのコンソールページに移って確認してみます。

以下の様の、「myClovaTest」に「API Gateway」が追加されていれば無事連携出来ています。

img_13.png

まとめ

ClovaスキルからアクセスするAWSのLambdaとAPI Gatewayの設定を説明させていただきました。次回のClova Skill開発 with AWS Lambda: その2 Clovaスキルの設定編でClovaスキルから今回設定したLambdaにAPI Gatewayを介してアクセスするClovaスキル設定について書きたいと思います。

3
2
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
2