Alexa音声アシスタント特集2018年10月19日SIN(336)27この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。V1で自動生成されたDynamoDBテーブルをV2で引き継ぐための手法が公開されていました。V1で作られたDynamoDBテーブルをそのままV2で使うためのコツ上記ブログでは、DynamoDbPersistenceAdapterを自前で作成することで、プライマリキーやアトリビュート名をデフォルトのものから置き換える手法が紹介されています。V2では、かなりの勢いでラッパーされているため、デフォルト値を使用するのであれば、非常にシンプルにスキルを作成することができます。一部でも、デフォルト値を変更したいと考えると、そのドキュメントがまだ少ないため、ソースコードを確認する作業になります。今回は、私がソースコードから得た情報で、DynamoDBのデフォルト値を変更する手法を2つ紹介させて下さい。本記事の内容は、私が手元で試しただけのものであることを、予めご了承下さい。リージョン以下のサンプルは、DynamoDBにテーブルを作成し、counterをインクリメントするだけのものです。}};呼び出される度に、counterがインクリメントされます。このスキルは、Lambdaがデプロイされたリージョンと同じリージョンのDynamoDBにテーブルを作成します。DynamoDBのリージョンを自由に指定したい場合は、下記のように自前でDynamoDBクライアントを生成します。下記の例では、バージニアにテーブルが作成されることになります。userIdDynamoDBを利用した永続化では、Alexaから送られてきたUserIdを元にプライマリーキーを生成しています。UserIDは、スキルが「有効」になっていから「無効」にされるまで、同一ユーザーであれば、利用するデバイスに関係なく同じとなるため、利用者の固有データを保存するというニーズでは、非常に理にかなった仕様です。参考:Alexaからスキルに送られてくる各種IDの一意性については、下記のブログをご参照下さい。キー値の設定ユーザーごとの情報を保存するのであれば、デフォルトの動作で全く問題ありませんが、ちょっとニーズが変わって、例えば、このスキルを使用した際の情報(全ユーザーをまたがった情報)や、日毎の情報(日毎の最高値や、トータルなど)を保存したい場合も、プライマリーキーを差し替えることで、AttributesManagerで同じように利用できるようになります。ここで、StandardSkillBuilderを確認すると、DynamoDB関連のメソッドにwithPartitionKeyGeneratorというのがあり、PartitionKeyGeneratorというオブジェクトで初期化されている事がわかります。this;}そして、PartitionKeyGeneratorsの実装を確認すると下記のようになっていました。userIdがAlexaのリクエストからuserIdを抽出しているのが分かります。},};withPartitionKeyGeneratorを使用して、キーのジェネレーターを差し替えるコードは、下記のようになります。'original-key';}このスキルを実行すると、全てのユーザーの情報が、origin-keyに保存されます。OriginKey()を日付に応じた文字列を返すようにすれば、日毎のデータもが保存できることになります。最後に今回は、DynamoDBのデフォルト値を変更することで、自由にリージョンを変えたり、プライマリーキーを変更して、AttributesManagerを使用する要領を紹介させて頂きました。V2はTypeScriptで書かれているため、VSCodeで簡単に追跡することができます。GutHubからコードをダウンロードして、VSCodeで眺めると、色々勉強になります。コメントは受け付けていません。3,362,202CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。