プログラマーな日々

プログラマーです。AWS認定ソリューションアーキテクト–アソシエイト。好きなものは、C#, TaskChute Cloud, WorkFlowy, Backlog, AWSです。

Alexa Salon Lab @東京〜AWS × Alexa実践講座〜に参加しました

Alexa Salon Lab @東京〜AWS × Alexa実践講座〜に参加したので、メモを共有します。

classmethod.connpass.com

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回書き込める

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で固められている