Alexa Salon Lab @東京〜AWS × Alexa実践講座〜に参加したので、メモを共有します。
Nodeの基礎
- SDK-V2ではNode.js8.10を使う
- Node.8.10の特徴
- Async/Awaitが使えるようになった
- Async/Await
- コールバックの新しい書き方
- Promiseとかで書いてたやつ
- try-catchで囲んでcatchにエラー処理を書く
一限:Dynamodbを使ったスキル構築
- NoSQL形式のデータベース
- サーバースペックや容量は気にしなくてもよい
- 永続化サービスとしてAlexa-SDKにデフォルトで操作APIがついている
- 初心者が引っかかるのは「キー」と「ユニット」
検索
- キー/インデックスのついているItemが検索できる
- プライマリーキー
- HashKey
- HashKey+RangeKey
- HashKey(連続しないもの)
- RangeKey(連続するもの)
- HashKey:ID
- ID=5
- HashKey:ID
- TimeStamp=今日から 5日以内
セカンダリーインデックス
- Local Secondaly Index
- Global Secondaly Index
ユニット
- キャパシティーユニット
- RCU
- 1秒間に2回読み込める
- WCU
- 1秒間で書き込めるユニット
- 5:1秒間に5回書き込める
- 1秒間で書き込めるユニット
- RCU
DynamoDBの読み込み
- GetItem
- BatchGetItem
- Batchで使うもの
- Query
- Scan
- Query/ScanとBatchGetItemでRCUの計算の仕方が違う
- 後者は1レコードずつ計算
読み込み容量
- 属性名+属性値
- 属性名はできるだけ短くつけましょう
シミュレーター
- Alexa Developer ConsoleからAlexaスキルのテストができる(しゃべる)
- Alexaシミュレーター
Alexaのセッション情報
- AttributeManager
- RequestAttributes
- SessionAttributes
- PersistentAttributes
- DynmamoDBに残す
- セッションが終わっても残る
- 注意点
- alexa-sdk-coreには入っていない
- カステムSkillBuilderには入っていない
- DynamoDBPersistenceAdapterを入れる
- Standardの場合、テーブル作成はど頭に書く
API Gateway
- AWSのAPIサービス
- 手軽にAPIエンドポイントを作成できる
- 裏側にはLambdaやSNSなどのAWSサービスを配置したりプロキシとして設定したりできる
- Account Linkのプロキシとして配置することでOAuth2接続の内容をロギングすることができる
OAuth
- 認可のプロトコル
- Implicit Grant
- Webブラウザ
- Authenticated code grant
- サーバー同士
- 複雑
- サーバー同士
- How to Set up Amazon API Gateway as a Proxy to Debug Account Linking
三限:CloudWatch Logsを使ったログ自動抽出
- LambdaのAlias
- Version
- AWSのログサービス
- 最大10年までのログ保管が可能
- サブスクリプションフィルタ
- ERRORが含まれる行のみ抽出
- ポイント
- Base64エンコードされている
- Zipで固められている