kun432's blog

技術ネタ、読書記録、など。2015年から人生をやり直し中です。

Alexa Skill Blueprintsでスキルをリリースしてみた(USのみ)

blueprintsを使ってスキルを申請してみたのでその結果です。

結果

申請、無事にパスしました!

f:id:kun432:20190216221030j:plain

そして、Alexaダッシュボードにも公開されました!

f:id:kun432:20190216221337p:plain

amazon.comの方は、検索しても出てこないので、Alexaダッシュボードのスキルのページにある「シェア」からリンクを直接引っ張ってきたら見えました。

f:id:kun432:20190216221151p:plain

blueprintsでも、statusがLiveに、VisibilityがPublicになってます。

f:id:kun432:20190216223527p:plain

ということでリリースしたのはこれです。

気づいたこと

やっぱり統計情報はどこにも出てこないようです。どれぐらい使われているかを知るすべがないことになります。。。

まとめ

もともとテンプレベースで作るので審査パスする確率も高いと思います。扱うコンテンツに問題がなければほとんど通るんじゃないでしょうか。

統計情報はどうも取れないみたいですけど、それもそこまで問題になるかなぁ、というところですね。スキルの性質にもよると思うのですが、ふと思ったのは、Q&Aとかを使ってヘルプデスク的なものを作った場合、どういう質問が多いか?というところを改善のポイントにする事が多いと思うので、その場合は統計取れないのはちょっと痛い気がしますね。

とりあえず簡単なのは間違いないので日本でも使えるようになったら気軽に試してみてください。

Alexa Skill Blueprintsでスキルを作って申請してみた(USのみ)

Alexa Skill Blueprintsで作ったスキルはこれまでプライベートでしか使えなかったらしいですが、ついにストアにも公開できるようになりました。

smartio.life

ただし英語のみ、ということで、残念ながら日本語ではまだ対応していませんが、近いうちに日本でもできるようになると思うので、USアカウント使ってやってみました。

注意

  • Amazon.co.jpのアカウントでもblueprintsからスキルは作れますが、
    • Amazon.co.jpのアカウントでログインした状態だとblueprintsにアクセスするとログイン状態になっているので普通にスキル作成はできます。
    • ただし、ログインしていない状態でblueprintsのサイトにアクセスして、Amazon.co.jpのアカウントでログインしてもログインできません。かならずAmazon.comのアカウントでログインする必要があります。
    • Amazon.co.jpのアカウントに紐付いたEchoで言語設定変更などをやっても、スキルは動きません。デバイスAmazon.comアカウントに紐付いている必要があります。

ということで、Amazon.comアカウントでデバイスをセットアップするのが前提です。

スキル作成の流れ

https://blueprints.amazon.com/にアクセスして、Amazon.comアカウントでログインしておきます。

f:id:kun432:20190215005642p:plain

色々なテンプレートが並んでます。簡単そうなやつということで「Quiz」を選択してみます。

f:id:kun432:20190215005836p:plain

ざっと見た感じ、クイズの質問、答え、を設定して行く感じですね。再生のアイコンをクリックするとサンプルが再生されます。

「Make Your Own」をクリックします。

f:id:kun432:20190215005941p:plain

スキル作成の流れを大まかなイメージ教えてくれます。まあ実際にやってみるほうが早いと思うので、閉じちゃいました。

f:id:kun432:20190215010326p:plain

クイズの質問と答えを入力する画面になります。サンプル例が予め入ってます。アメリカの州に関するクイズっぽいですね。デフォルトは4問用意されていて、「Add Q&A」をクリックすると追加の質問が入力できます。ちなみに、一部の記号とか無駄なスペースがあるとダメっぽいですが、どこが間違ってるのかわかりにくい。。。()とか ローマ字でōとかはダメでした。

f:id:kun432:20190215010643p:plain

サンプルに習って、日本の観光名所がどこの都道府県にあるか?というクイズ形式にしてみました。説明文はウィキペディアから引っ張ってきました。終わったら右上の「Next: Experience」で次に進みます。

f:id:kun432:20190215011239p:plain

メッセージのカスタマイズなどを行います。クイズが起動したとき、正解、不正解、最後の結果発表時の発話とか効果音が設定できますね。

f:id:kun432:20190215012615p:plain

背景画像の設定もできるので、ディスプレイ対応デバイスも想定されていますね。ただ画像自体をアップロードすることはできないみたいです。今回は起動時メッセージだけちょっと変えて、あとはデフォルトのままにしておきました。右上の「Next:Name」で次へ進みます。

f:id:kun432:20190215012811p:plain

最後にスキル名を設定します。これが呼び出し名になります。単語2語か3語でしか設定できないみたいなので結構厳しい。。。”Travel Japan Quiz” にしてみました。「Next: Create Skill」で次へ。

f:id:kun432:20190215013358p:plain

スキルが作成開始されました!

f:id:kun432:20190215013813p:plain

スキル管理画面(SKILLS YOU'VE MADE)でもスキル作成中が表示されてます。1,2分程度かかります。

f:id:kun432:20190215014204p:plain

完了しました!Visiblity が "Just me" になっているのでプライベートスキルなことがわかります。右の方に修正したり公開したりするメニューも見えますね。

f:id:kun432:20190215014105p:plain

Alexa開発者コンソール

Alexa開発者コンソール側にも作成したスキルは反映されます(もちろんAmazon.comアカウント)。ただし、ビルドやテスト、統計などは一切表示されません。すべてblueprint側の管理になるようです。

f:id:kun432:20190215014735p:plain

実際にスキルを動かしてみる

では、実際にスキルを動かしてみます!最初はAlexaアプリでやろうとしたのですけど、USアカウントでログインし直しても言語が切り替わらなかったので、手元のEcho Spotを一旦工場出荷状態に戻してAmazon.comアカウントに紐づけました。

発音は勘弁してください!!!

https://youtu.be/DxHhFusWlC0


Alexa Skill Blueprintsでクイズスキルを作ってみた

は、発音悪すぎて認識が、、、は置いといて。

ディスプレイ対応もされてますし、メッセージの設定画面にはなかった発話とかも予め用意されているみたいですね。ほんと、コンテンツの中身とかだけ設定すればスキルが簡単に作れちゃうってことですね、すごい楽ちんです。

ちなみに、クイズの内容を書き換えたいとかも簡単で、スキル画面からEDITをクリックすると、クイズや答えの設定画面が再度表示されるのでそこで修正するだけです。変更後の反映は、最初のスキル作成時よりも早かったですね。

f:id:kun432:20190215021209p:plain

申請

せっかくできたので申請しちゃいます。スキル画面の「Publish To Skill Store」をクリック。

f:id:kun432:20190215020923p:plain

「Get Started」をクリック

f:id:kun432:20190215021413p:plain

あとはいつもの申請情報を入力するだけです。

STEP1で、呼び出し名とかスキル名、開発者名を入力します。

f:id:kun432:20190215022520p:plain

STEP2で、カテゴリ、検索時のキーワード、アイコン、説明文を入力します。ちょっと嬉しいのは、いつもなら大小2つのアイコンを登録しないといけないのが一つだけで済むことですね。縦横の長さが同じ同じ正方形であれば、画像サイズは特に縛りはなさそうです。

f:id:kun432:20190215023424p:plain

あと、アイコンビルダーも使えますが、開発者コンソールから使えるやつよりも、こっちのほうが使いやすい!

f:id:kun432:20190215023529p:plain

STEP3で子供向けスキルとか広告とか利用規約とかを設定します。

f:id:kun432:20190215022548p:plain

STEP4が最終確認です。問題なければ、右上の「Publish To Store」をクリック

f:id:kun432:20190215022610p:plain

申請されました!

f:id:kun432:20190215023723p:plain

メールも来てます!結果は後日。

f:id:kun432:20190215024239p:plain

2019/02/16 追記

申請パスしました!

f:id:kun432:20190216221030j:plain

以下に結果を書きました

kun432.hatenablog.com

まとめ

Blueprints、もともとはプライベートスキルを簡単に作れるということだったのですが、ストアへの申請もできるようになって、これまでの開発者コンソールでちょっと使いにくいなと思ってたようなことも改善されていて、さらにスキル開発の敷居が下がった感じです。

気になったことをいくつか。

  • スキルの説明文のテンプレに”Your requests to this skill are not shared with the skill developer.”とあり、もしかすると統計情報とか見れないかもしれませんね。ただ、元々テンプレベースで作るので、デバッグとかほとんど必要ないでしょうし、知りたいのはせいぜい、どれ位のユーザが有効化してくれたか?ぐらいだと思うので、ここはもし審査パスしたら確認してみたいと思います。 →2019/02/16 追記 Alexa開発者コンソールにあるような統計情報は見れないようです。開発者コンソールにもblueprintsのどこにもそういったリンクは見当たりませんでした。
  • スキルのテンプレは決まってて、カスタマイズできる部分も限られているので、ほんとにコンテンツが勝負って感じになると思います。いかに使ってもらえるネタを見つけれるか、と、幅広いスキルテンプレの充実が今後のキモになりそうな気がします。

といいつつも、他にも、音楽ファイルの再生とかができそうなやつとか、Q&Aみたいにすぐに仕事とかで使えそうなものもあるので、サクッと作れるのはよいですね。いろいろ試してみたいと思います。

これでどんどんスキル開発始めてみようと思う人が増えるといいですね。日本語対応も期待してます。

Alexa対応ホテルに泊まってきた

Alexa対応の天満市場に行ってきたに続いて、勢いに乗って事例レポ、もう一つ。

前々から気になってたのがこれ。

ホテルのサービスがAlexaで受けれて、かつ、多言語にも対応ってのはちょっと夢がありますよね。ちょっと前に、たまたま仕事で東京出張があり、それにかこつけて泊まってきたので周回遅れですがレポ報告します。(ちなみに宿泊代だけ自腹)

ホテルはここです。

f:id:kun432:20190213003555p:plain

JR渋谷駅から徒歩10分とありますが、途中から上り坂が続くので、想像よりも歩いた気がしました。ただ、渋谷の中心部からは少し離れますし、大通りからちょっと入ったところにあったので、まあまあ静かな感じでしたね。

レポ

ホテルについては、

  • 比較的新しいこともあり結構きれい
  • ロビーとかアメリカンアンティークな感じでおしゃれ、朝とかに欧米人と見受けられる観光客の方がソファとか座ってて、ちょっと風景的には海外な感じ。
  • 全体的にこじんまり。窮屈ではないけどゆったりでもなかったです。まあ部屋の種類にもよるかと。

って感じでした。そのあたりは今回の主目的ではないので、写真も何もありません。ググるなり泊まるなりしてもらえればと思います。

部屋の模様をお伝えします。

入ってすぐはこんな感じです。左にトイレとシャワールームがあり、奥が部屋のメインのスペースになってます。

f:id:kun432:20190213010517j:plain

トイレとシャワールームです。浴槽はないです。

f:id:kun432:20190213010638j:plain

f:id:kun432:20190213010724j:plain

メインのスペースです。和風タイプの部屋だったようで畳の上に布団でした(実際はマットレスの上に布団ですが)。テレビは最近よくあるタイプのホテルの案内などがデフォルトで表示されていてメニューでテレビに切り替えたりするやつですね。写真には写ってないんですが、テレビの裏にRaspberry Piが接続されていて、テレビ起動時にはRaspberry Piで何かが動いているようなメッセージが表示されてましたので、Raspberry Piでどうもシステムが構築されているっぽいです。

f:id:kun432:20190213010643j:plain

右手のデスクの上にお目当てのAmazon Echo Spotがあります。Echo Spotというところが最近な感じがしますね。マニュアルが置いてあります。

f:id:kun432:20190213011152j:plain

マニュアルの表側はこんな感じです。簡単な会話事例が書いてあります。きちんと多言語対応が謳ってあっていいですね。Echoでうまく伝わらない場合はQRコードを使うとチャットでの対応になるようです。

f:id:kun432:20190213011408j:plain

QRコードを読み取るとこういう画面が開きます。ここで言語を選択するわけですね。特に用事もないのに呼び出すのもアレなのでここでやめておきました。

f:id:kun432:20190213011753p:plain

マニュアルの裏側はこんな感じです。表側よりもより細かい、実際の発話パターンが書いてあります。注目すべきところは一番下ですね。

f:id:kun432:20190213011902j:plain

天満市場の場合は画面のないEcho Dotだったので、言語の切り替えはスマートフォンのAlexaアプリから行う必要があり、Echoの所有者でないと設定できないのですが、なるほど、Echo Spotだと画面操作で言語設定を切り替えれるのでそれで対応するということですね。利用者のリテラシーを考えると苦しい場合もありますが、致し方無い気もしますね。。。

f:id:kun432:20190213012215j:plain

ということで、実際にスキルを試してみました。


Alexa対応ホテルのスキルを試してみた

おお、さすがにSpotなので画面対応スキルになっていますね。コンテンツの更新は大変かなと思いますが、近隣情報ぐらいだと早々変わらないのでいいかなと思います。あと、何かしらルームサービス的なお願いするとフロントへつなぐ感じになりますね、ここ呼びかけとかを使ってのテレビ電話的な対応になるのか、チャットボットに切り替える(のは無理だと思うのでQRコードを表示してスマホ経由とかかも)のかは実際に試してないのでわかりませんが、きちんと考えられている感じがします。

英語に切り替えても動くみたいですが、多分最後のところは私の発音を正しく認識してもらえなかった感じがしますね、汗。もう少しいろいろ試せばよかったなと今となっては後悔。。。。。でもまあ頑張ってる感じはしますね。

まとめ

正直に言っちゃうと、ホテルに泊まった直後は少しがっかりしてました。というのも、

  • スキルで多言語対応したとしても、機器側で切り替えるとか、機器ごとに言語変えておかないと対応できない。
  • ホテルなどであれば、集中的に機器を管理したくなるはず。特にユーザが設定を変更できるとなるとこの辺の制御もしたい。

ということを真面目にクリアできるソリューションはおそらくAlexa for Business/Alexa for Hospitalityしかないと思っていて、冒頭の記事を見て「多言語」というところが謳われていたので、もしかしてUSアカウントで Alexa for Hospitality を先行的にやってたりするんじゃないか?と勝手に期待が高まっていたのです。実際に Alexa for Hospitality の動きを見たことがないので判断のしようがないのですが、上記の挙動を見る限り、普通にカスタムスキルを多言語化してるんではないか、むしろカスタムスキルで十分できるんじゃないか、という気がして、for Hospitality ではないんだろうなと、というところで残念に思った次第です。(勝手な話ですいません。)

ただ、スキルとして純粋に見た場合、よくあるお問い合わせはAlexaにお任せ、Alexaで対応できない部分とか多言語のところはチャットボットを活用して人が対応する、という、テクノロジーだけで解決できない部分をきちんとフォローできるようになっているのはよく考えられているなと思います。天満市場の事例も含め、現状いろいろな制約がある中で、実運用上の課題等も対処しつつ、実際にサービスとして提供するというのは、先行事例としてやっぱり素晴らしいですよね。参考になります。

ちなみに開発は、トラッドフィット株式会社さんなのですが、このHOTEL EMIT SHIBUYA以外にも

  • 天王寺都ホテル
  • ⼩⽥急ホテルセンチュリーサザンタワー
  • MIMARU東京 ⾚坂
  • MIMARU京都 新町三条

などなど、で提供されているようなので、機会があれば実際に一度宿泊してみて体感してみてください。

最後に、

Alexa for Business / Alexa for Hospitality、マジで日本に来てくれ!

現場からは以上です。

Alexa対応の天満市場に行ってきた

先日のAAJUGでの「初心者がアレクサスキルを作って地域商店街においてみた話」がとても気になり熱が冷めないうちに見ておこう、ということで行ってきましたレポです。

開発は株式会社TAMさんです。TAMさんのWantedlyにも載ってますね。

現場レポ

場所はここです。

f:id:kun432:20190212223122p:plain

JR天満駅から5分ぐらいですかねー。ただ駅からは路地のような細い道をずーっと進むので、迷うかもしれませんね。

とりあえず入り口です。会社帰りによったので、もう暗くなってて、ビルの全景は写真撮りませんでした。どっかググってください。個人的に昔の天満市場とかこの辺の景色をよく知ってて、ずいぶんときれいになったなーという印象です。

f:id:kun432:20190212223707j:plain

で、入り口の真横にあります。一度中に入ってどこに置いてあるかわからず奥まで行って一度戻ってきてたりしたのはいい思い出です。

f:id:kun432:20190212225403j:plain

てってれー、テンション上がりますねー

f:id:kun432:20190212225833j:plain

発話例が書いてあります。最近は外国人観光客も結構来るということで、トイレの場所や、なにか買いたいものをどこで売ってるか?とか、よく聞かれるものが載っているみたいです。

f:id:kun432:20190212225951j:plain

上記とは別にマニュアル的なものも用意されてますね。可愛い感じです。

f:id:kun432:20190212230135j:plain

カウンターには地図がぶら下げてあります。きちんと英語でも書かれてます。

f:id:kun432:20190212230418j:plain

ということで、お待ちかねのAlexaスキルです。Amazon Echo Dotが2台並んでて、左が日本語、右が英語になってました。

f:id:kun432:20190212230623j:plain

まずは日本語から試してみます。日本語のEcho Dotは「アレクサ、天満市場を開いて」で起動します。実際にやってみます。


天満市場でAlexaスキル試してきた(日本語版)

次は英語です。英語の方は「Amazon, Open Tenma Market」で起動します。ウェイクワードを変えているわけですね。英語の発音についてはご容赦ください。。。(でもこんな発音でもきちんと聞き取ってくれるAlexaってすごい!と思います)


天満市場でAlexaスキル試してきた(英語版)

うっかり「アレクサ」と呼んで、日本語のほうが立ち上がってしまうのは複数台Echoを持ってる人にはあるあるですよね。

きちんと盗難防止も考えられてます。写真には写ってないですが、手書きのメッセージで「持ってかないでね」とか「故障の場合はこちらまで連絡ください」みたいなものも書いてあって、ほんわかしました。

f:id:kun432:20190212232007j:plain

まとめ

こういう実例を目の前で見ることはそうそうないので(そもそも事例自体が少ないのもありますし)、会社からも近いし、昔から知ってる場所なので、勢いで行ってみましたが、実際に動いているものを見るとちょっとテンション上がりますね。行ってよかったです!

あと、こういう公衆スペースでの活用、かつ、外国人向けにも提供、というケースは、今後必ずニーズが出てくる(というか今でもあるはず)と思っていて、以前から興味を持っていますが、現状のAlexaは家庭ユース想定であり、言語の逐次切り替えなどもできないことから、スキル側で多言語対応しつつEchoを言語ごとに用意する、というのがまあ落とし所って感じじなんでしょうね。事業者側の立場だと関係ないスキル使われたくない、いろいろ細かく管理したいといったニーズもあると思うので、Alexa for Business/Alexa for Hospitalityとかが早く日本でも使えるようになることを切に願っております。

でもそういう制約の中でチャレンジしたTAMさん、グッジョブ!

現場からは以上です。

ask-cliのdialogコマンドでAlexaスキルのマルチターン会話をテストする

Alexaスキルのテストは、

  • 開発者コンソールのテストシミュレータ
  • 実機

が基本だと思いますが、ちょっとめんどくさい・ある程度自動化したいということで調べてみました。なお、ディスプレイ対応デバイスのテストについては考えないことにします。。。。


ask-cli の simulateコマンド

simulateコマンドを使えばテストできます。日本語も使えます。

拙作「HTTPステータス検索」スキルを使って実際にやってみます。

HTTPステータス検索

HTTPステータス検索

スキル起動。実行結果出力端折ってます。

$ ask simulate -t "HTTPステータス検索を開いて" -s amzn1.ask.skill.xxx -l ja-JP
✓ Simulation created for simulation id: xxx
{
  "id": "xxx",
  "status": "SUCCESSFUL",
  "result": {
・・・
          "invocationResponse": {
            "body": {
              "version": "1.0",
              "response": {
                "outputSpeech": {
                  "type": "SSML",
                  "ssml": "<speak>HTTPステータス検索です。三桁のHTTPステータスコードを言ってください。</speak>"
                },
                "card": {
                  "type": "Simple",
                  "title": "HTTPステータス検索",
                  "content": "HTTPステータス検索です。"
                },
                "reprompt": {
                  "outputSpeech": {
                    "type": "SSML",
                    "ssml": "<speak>三桁のHTTPステータスコードを言ってください。</speak>"
                  }
                },
                "shouldEndSession": false,
                "type": "_DEFAULT_RESPONSE"
              },
・・・

ここでコマンドは終わってますが、そのまま続けます。

$ ask simulate -t "二百" -s amzn1.ask.skill.xxx -l ja-JP
✓ Simulation created for simulation id: xxx
{
  "id": "xxx",
  "status": "SUCCESSFUL",
  "result": {
・・・
          "invocationResponse": {
            "body": {
              "version": "1.0",
              "response": {
                "outputSpeech": {
                  "type": "SSML",
                  "ssml": "<speak>ステータスコード200ですね。ステータスコード200は、OK、です。リクエストは成功し、レスポンスとともに要求に応じた情報が返されます。ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返しています。</speak>"
                },
                "card": {
                  "type": "Simple",
                  "title": "HTTPステータス検索",
                  "content": "ステータスコード200ですね。ステータスコード200は、OK、です。リクエストは成功し、レスポンスとともに要求に応じた情報が返されます。ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返しています。"
                },
                "type": "_DEFAULT_RESPONSE"
              },
・・・

きちんと想定どおりに会話が続いてますね。出力されたJSONの中を見ると、1回目も2回目もsessionIdが同じになってるので、コマンドが終わってもスキルのセッションは一定時間継続しているのだと思います。なので上記のQiitaの中で紹介されている通り、ユーザの発話例をテキストでまとめておいて、シェルスクリプトで順次コマンドに渡せばマルチターンのテストもできそうです。

ask-cli の dialogコマンド

ちなみに本題はこれです。以前ドキュメント見たときはなかったと思うのでいつのまにやら追加されたみたいです。手元の環境でも普通にask dialog叩いても出てこなくて、ask-cliをバージョンアップしたら使えるようになりました。まだ「開発者プレビュー」扱いなので注意。

開発者がAlexaとのマルチターンの会話をシミュレートできるダイアログモードを開始します。各ダイアログはsimulate-skillを使用します。これは、シミュレーション結果が入手できるまでポーリングを続ける非同期の操作です。結果を入手したら、Alexaのテキスト応答を表示します。パラメーターが無効な場合、対話モードは開始しません。また、ユーザーが特殊コマンドの「!quit」かCtrl+Cを入力しない限り終了しません。

ということで、まずはコマンドラインからやってみます。ask dialogを実行すると対話形式になるので、想定の発話を入力していきます。-sでスキルIDを指定すればask-cliで作成してないスキルでも使えます。(ask-cliで作ったスキルなら、スキルのプロジェクトフォルダで実行すれば-sも不要)

$ ask dialog -s amzn1.ask.skill.xxx -l ja-JP
  User  >  HTTPステータス検索を開いて
  Alexa >  HTTPステータス検索です。三桁のHTTPステータスコードを言ってください。
  User  >  二百
  Alexa >  ステータスコード200ですね。ステータスコード200は、OK、です。リクエストは成功し、レスポンスとともに要求に応じた情報が返されます。ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返しています。
  User  >  !quit

できました。いかにも対話っぽい感じで良いですね。

でもこれを何度も入力するのは嫌だ、ということで、発話を記録しておいた「再生ファイル」を元にテストを行う--replayオプションというのを使います。

再生ファイルのフォーマットはこんな感じのjsonです。

{
  "skillId": "amzn1.ask.skill.xxx",
  "locale": "ja-JP",
  "type": "text",
  "userInput": ["HTTPステータス検索を開いて","二百"]
}

見ればわかると思いますが、skillIdにスキルIDを指定して、userInputのところにユーザの発話を配列で並べるだけです。あとはこのファイルをask dialog --replayで食わせるだけです。

$ ask dialog --replay test.json
  [Info]: Replaying file test.json.
  User  >  HTTPステータス検索を開いて
  Alexa >  HTTPステータス検索です。三桁のHTTPステータスコードを言ってください。
  User  >  二百
  Alexa >  ステータスコード200ですね。ステータスコード200は、OK、です。リクエストは成功し、レスポンスとともに要求に応じた情報が返されます。ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返しています。
  User  >  !quit

ちなみに-oでファイルを指定すると、ask simulateで出力されるようなJSONレスポンスが指定したファイルに出力されます。これを組み合わせると、画面に出力されるのは純粋なやりとりだけ、ask simulateよりも見通しがよい、詳しく見たいなら出力ファイルを見る、って感じで、使いやすいです。

$ ask dialog --replay test.json -o result.txt

ただし、いくつかイケてないところも。

ドキュメントでは、ask dialogのプロンプトの一番最初で!recordを実行すると、発話の入力に合わせて、テスト用のファイルが作成されるみたいなんで試してみたんですが、

ask dialog -s amzn1.ask.skill.xxx -l ja-JP
  User  >  !record
? Enter the file name you want to record to: test.json
  User  >  HTTPステータス検索を開いて
  Alexa >  HTTPステータス検索です。三桁のHTTPステータスコードを言ってください。
  User  >  二百
  Alexa >  ステータスコード200ですね。ステータスコード200は、OK、です。リクエストは成功し、レスポンスとともに要求に応じた情報が返されます。ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返しています。
  User  >  !quit

できた再生ファイルを見ると、

{
  "skillId": "amzn1.ask.skill.xxx",
  "locale": "ja-JP",
  "type": "text",
  "userInput": []
}

userInputが空なんですよね、、、まあプレビューなのでしょうがないかもです。

あと、最後まで進んだらコマンド終了してほしいんですけど、プロンプトで止まるんですよね。!quit は再生ファイルに含めれないみたいなので、毎回!quitするかCtrl+Cしないといけないのは面倒です。shouldEndSessionがtrueなら勝手に終わってくれればいいのに、と思いますね。

nodeモジュール「alexa-conversation」

www.npmjs.com

ざっと見る限り、これが一番テストらしいテストができそうですね。ただ、1年ぐらい更新されてない。。。。今でも使えるのかなぁ。。。。

以下に紹介記事もあるので、また確認してみたいと思います。

dev.classmethod.jp

wp-kyoto.net


ということで、Alexaスキルのテストについてでした。最近、alexa-hostedスキルが使えるようになって下手すると開発者コンソールだけで全部済んじゃうので、ask-cli使う回数がめっきり減ってますが、テストシミュレータ何度も実行するの面倒だし、このあたりはask-cliのほうが便利だなーと思います。特にask dialog、必要最低限の機能はあるのでサラッとテストするにはいい感じです。他にもっといいテスト方法があれば教えていただけると嬉しいです。

しかし、Alexaスキルのテストについてググって、見つかる記事が軒並み2017〜2018年春頃の記事で、改めて先人達はほんとすごいなと、、、、

AWS認定SysOpsアドミニストレータ・アソシエイトの再認定をパスした

f:id:kun432:20190212014046p:plain

2018年の振り返りでも書いたのだけど、昨年末に期限が来ていた、AWS認定SysOpsアドミニストレータ・アソシエイトの再認定、無事2回目で更新できました!以前とは大幅に出題範囲が違ってたのに面食らって、1回は落ちたのですが、無事再認定パスしたということで、どういう勉強したかを残しておきます。参考になれば。

AWS認定の遍歴

  • AWS認定ソリューションアーキテクト・アソシエイト、SysOpsアドミニストレータ・アソシエイト、共に2014年に取得
  • その後、2016年に両方とも再認定。
  • 昨年待つ、ソリューションアーキテクト・アソシエイトは合格、SysOpsアドミニストレータ・アソシエイトは不合格
  • 今回SysOpsアドミニストレータ・アソシエイト再認定、無事合格

スペック

  • ISPのインフラエンジニア、サーバ(Solaris/Linux)がメイン。キャリアだけは長い。メールとかDNSとかRadiusとかをオンプレのデータセンターで面倒見てました。LPIC Level3保持。
  • FW/L2SW/L3SW/LB/VPN/SAN/NASとかデータセンターにありそうなものは一通り触ってます。
  • 仮想化レイヤーはあまり触ってません。Solarisコンテナでローコストな検証環境作ったぐらい。
  • クラウドは、AWS/GCPともにプライベートで多少いじるぐらいで業務経験ゼロ。
    • Alexaスキル作るようになってからは結構AWS触ってるけど、正味ここ1年ぐらい。
    • GCP認定プロフェッショナルクラウドアーキテクト持ってるけど、今振り返ってもなんで受かったのかわかんない。

まあ、ちょっと古めのインフラエンジニアで、広く浅く、って感じだと思います。

1回目不合格の敗因

昨年夏に試験範囲の見直しがあり、一応知ってはいたものの、

  • もともと、初めて受けた時も最初の再認定のときも、ソリューションアーキテクト向けの勉強しかしてなくて、それでもまあなんとかなった、って感じだった。
  • しかも直前のソリューションアーキテクトの再認定を無事パスしたのもあって、大丈夫だろうと舐めていた

のが敗因ですね。ちなみに、試験ガイドを今見ても、具体的にどう変わったのかまでは読み取れないので、多分だめだったんじゃないかと思います。

で、落ちた後、どう勉強したら良いかなとーと思って調べてみると、AWS認定の勉強方法などをまとめられている海外のブログがありました。

上記にも書いてありますけど、

AWS Certified SysOps Administrator – Associate exam is quite different from the previous one with more focus on the error handling, deployment, monitoring.

ってことで、ソリューションアーキテクトも更新はされてますけどある程度これまでの知識でイケたのに対して、SysOpsはそうではないと。ちなみに点数的にもボロボロでした。

勉強方法

まず、ソリューションアーキテクト・アソシエイトは持ってる前提です。ソリューションアーキテクトで、AWSサービスの基本知識となる部分を固めて、プラスSysOpsの運用寄りな知識をつけるのが効率的です。ソリューションアーキテクト対策としては、

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

しかなかったんですけど、今だと黒本とかのほうがいいのかもしれません。

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

別にも出るみたいですね。

最短突破 AWS認定ソリューションアーキテクト アソシエイト 合格教本

最短突破 AWS認定ソリューションアーキテクト アソシエイト 合格教本

私が一番最初に受けたときはこういう書籍がなかったので、入門書いろいろ買って手を動かすのと、Black Beltをひたすら読むって感じでした。ただ書籍が揃ってきた今でも、手は動かしたほうが断然理解が進むと思います。

で、SysOps向けには、とりあえずいろいろ探して、UdemyのCloud GuruのSysOpsコースが一番お安かったのでそれで進めることにしました(普通に買うと結構するんですが、マメにセールやってて、そのときに買うと安いです。私の場合は1200円でした。)

https://www.udemy.com/aws-certified-sysops-administrator-associate/

これを毎日の通勤時に見てました。基本的に英語、あと多分UKなんですけど、それほど聞き取りづらい感はなかったし、まあ技術的な用語ばっかりなんで十分わかるって感じです。

このコースの良いのは、

  • 大きく分けて10章、各章ごとに約10チャプター程度で構成されていて、1チャプターが約5〜15分程度で空き時間にできる。
  • 1.25倍速とかにしても聞き取れるし、むしろ効率よく進めれる
  • 各章・各チャプターの最後に、試験対策向けに重要なポイントをまとめてくれる。

ってところですね。特に最後のまとめのところは良いんじゃないかなと思います。私も一通り流したあと、試験直前にはまとめだけ復習しました。

上記以外は、初見のサービスとかは実際に少し触ってみたりしたぐらいですね。

試験

試験内容については触れませんが、個人的には2回目だけどやっぱり難しかったという印象です。特にSysOpsの場合はその名前通り、運用寄りのトピックが中心になるので実際の運用経験があればもっとスッと入ってくるのかなーと思いますが、それがないと一般論の範疇でしか想像できないので、やっぱり厳しい感があります。

まだスコアレポートもらってないのでわかりませんけど、過去もソリューションアーキテクトのほうが良くて、SysOpsはそれよりも少し点数下がる、って感じなので、まあギリギリ合格とかじゃないかなと推測してます。

2019/2/12 追記 スコアレポート見てみたら思いのほか出来てました。ソリューションアーキテクトよりも点数良かったのは意外ですが、できてないと思ったときのほうが点数良いってのはまあテストでありがちな話ですね。

今後

とりあえず、以下の2つのどちらかをやる予定です

  • AWS認定デベロッパー・アソシエイト
  • GCP認定プロフェッショナルデータエンジニア

GCPは最近触ってないのと、情報がほとんどないので、デベロッパーの方がやりやすいかなぁと。個人的にもAlexaスキル作ってたりすることもあって、AWSをやる方がいろいろいいかなと思ってます。

ただ、アソシエイト全制覇しても、実運用してないとプロフェッショナルレバルは難しいと思うし、ストアで買える合格の特典グッズは変わらないんですよねぇ、、、むしろ違うグッズ買えるクラウドラクティショナー取りたくなります。(ノベルティ駆動学習型なので)

ま、少し考えます。とりあえずは再認定パスしてホッとしてます。

2019年1月の振り返り

f:id:kun432:20190203225010p:plain

去年から一年の目標を立ててますが、年が終わってからの振り返りでは少し期間が長すぎる気がするので、毎月振り返りたいと思います。

ということです、1月の振り返りです。


資格を取る

  • AWS認定 SysOpsアドミニストレーター・アソシエイト(再認定)
    • 通勤の間に、udemyのコースを毎日コツコツやってました。
    • 一応、今日、無事更新できました!
    • 去年の改訂で一気に難しくなって、ソリューションアーキテクト持ってる前提で、かつ、実運用寄りのサービスが出題範囲になってます。
    • 全く経験なし・資格取得のための勉強、ってのは以前に比べると遥かに厳しい印象です。
    • これから初めて受ける人・改訂前に合格した人でこれから更新する人は、きちんと出題範囲を見ておくことを強くお勧め
  • Alexaスキルビルダー
    • 先日までベータ試験やってたけど、とりあえずスルーしました。
    • というのも、出題範囲見る限り、結構カバー範囲広くて、スキルも経験もまだまだ足りない感があったので。
    • ベータ受けると正式リリース時用のクーポンもらえるらしいけど、もっとスキルいろいろ作って、正式リリースされたら受けたいと思います。
  • 2月
  • デベロッパー・アソシエイトにするか、GCPのデータエンジニアにするか、まだ迷い中。

毎月一個、テーマを持ってスキルを作る

  • 1月は動画再生スキルを2個リリースしました。
    • 当初はダイアログモデル試してみたかったのですが、程よいアイデアもなく・・・
    • 動画スキル、本当に簡単です。リストメニューとか凝ったこともしてませんし(いちいち選択するよりもさっと使えるものにしたかった)
    • 今回alexa-hosted使ったこともあって動画アップしてコード書いてコピペするだけでした。楽ちん。
    • 多分サウンド系も同じ感じかなーと勝手に推測。何気にサウンド系はよく使われてるみたいなので、アイデアが湧かない時用にとっておきたいと思います。

1分間キャンドル

1分間キャンドル

1分間暖炉

1分間暖炉

  • 2月はセッションをテーマにいろいろやってみたいと思います。VUX真面目にやるならセッションは外せないと思うので。

アウトプット

github

  • 一応は、週1コミット守りました。

f:id:kun432:20190203223151p:plain

その他

  • YAPC::Tokyo 2019に行ったのでブログ書きました。今回も楽しかったなー。

kun432.hatenablog.com

個人名刺作る

  • Alexaに特化したやつ、作っちゃいました。職場の業務とは今の所あまり関係ない活動なので、勉強会等ではこちらを配る予定です。

f:id:kun432:20190203223501p:plain

裏はこんな感じ。この作りだと、スキル増えたら名刺も作り直さないといけないのですが、まあ最初なので面白がってやってみた次第。

f:id:kun432:20190203224142p:plain

作ってみると、いろいろ粗が気になりますね、、、そのうち直します。


2月もAlexaスキル開発メインにいろいろ頑張りたいと思います。