AWS認定Alexaスキルビルダー専門知識(AXS)を、ツンデレメイドスキルを作りながら取得したやったことまとめ

# はじめに
AWS認定Alexaスキルビルダー専門知識(AXS)について、受験者数の絶対数が少ないのか試験対策に関する参考記事の投稿が少なく情報収集に苦労しました。

今回実際に EchoShow8で動作するAlexaスキルを作りつつ、取得できた試験準備のコツなどについてまとめてみました。Alexaスキルビルダー専門知識に関わるAWS関連サービスのイメージを掴んでいただければ幸いです。


# 本記事の主な対象者
- AWS認定の他の試験区分は取得済みで、Alexaスキルビルダー専門知識の受験を検討している方
- 取得に向けて有効な学習方法などの情報収集したい方

# 筆者のAWS認定履歴

|AWS認定  |取得日  |
|---|---|---|
|ソリューションアーキテクト - アソシエイト  |2018-05-13|
|デベロッパー - アソシエイト  |2018-06-03|
|SysOpsアドミニストレーター - アソシエイト | 2018-06-10|
|ソリューションアーキテクト - プロフェッショナル  |2018-07-29|
|DevOpsエンジニア - プロフェッショナル  |2018-08-26|
|ビッグデータ専門知識  |2019-08-25|
|セキュリティ専門知識  |2019-12-08|
|機械学習専門知識  |2020-02-23|
|高度なネットワーキング専門知識  |2020-06-20|
|データベース専門知識  |2020-07-04|
|Alexaスキルビルダー専門知識  |2020-07-24|


さて、今回の受験モチベーションは、率直に、自身の最後の専門知識区分にチャレンジしてみたくなったのがきっかけです。

# 今回のスコア(2020-07-24受験)
```
総合スコア: 884/1000 (ボーダー750)
```

# AWS認定Alexaスキルビルダー専門知識(AXS)について
ここからが本題となります。
まずは、以下の公式ページから試験概要の把握を行いました。

 - [AWS 認定Alexaスキルビルダー専門知識 トップページ](https://aws.amazon.com/jp/certification/certified-alexa-skill-builder-specialty/)
 - [試験ガイド](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-alexa-skill-builder-specialty/AWS-Certified-Alexa-Skill-Builder-Specialty_Exam-Guide.pdf)

 - [サンプル問題](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-alexa-skill-builder-specialty/AWS-Certified-Alexa-Skill-Builder-Specialty_Sample-Questions.pdf)

# 具体的な試験準備で効果があったと思えること
実際に受験をしてみて、試験対策として効果があったと思う内容について、主観的な効果度合いで順に記載します。

 - [公式のトレーニングコース](https://www.aws.training/Details/eLearning?id=45890)の受講

Alexaスキル開発自体が初めての経験だったため、公式のトレーニングコースで、Alexaスキル開発のエッセンス及び、認定に関わる出題範囲の確認を行いました。こちらのコースは、AWS認定の申し込みの際に使用するアカウントをお持ちの方であれば、無料で受講することができます。

 - [Alexa Skills Kit 開発者ドキュメント](https://developer.amazon.com/ja-JP/docs/alexa/ask-overviews/build-skills-with-the-alexa-skills-kit.html)の読み込み

上記の公式のトレーニングコースでは、Alexa Skills Kit 開発者ドキュメントから引用されている部分がありました。ドキュメント量は膨大なのですが、このドキュメントから引用される設問が多い感じがしましたので、軽く一読することをオススメします。

 - 実際にAlexaスキルを作ってみる

思い立ったが吉日、ということでお試しでAlexaスキルを作成してみました。基本的な流れは、開発者コンソールでスキルの環境設定を行い、Lambdaでコードを書くという流れになります。今回は、役に立つスキルというものよりかは、頭の中の物を形にすることに重点をおいたため、安直ながらツンデレメイドのAlexaちゃんと非日常的なマルチターン会話を楽しめるスキルを作成してみました。馴染みのあるNode.jsでハンドラー部分のコードを実装しながら、開発のお作法を確認していきました。
また、動作検証用にEchoShow8を準備していたため、認定の重要ポイントである実機でのベータテストまでを行いました。

なお、今回の認定準備の話題とは若干離れる内容とはなりますが、一般公開レベルのAlexaスキルを作成するにあたっては、Lambdaでコードを書くということよりも、ユーザーエクスペリエンスを意識したVUIのデザインの方が、重要かつ難しいポイントだなと感じました。

以下、スキルのイメージになります。ダイアログをデリゲートしつつ、来店回数（スキル起動回数）を永続値としてDynamoDBに保存し、来店回数が一定以上になるとランクアップし、接客のデレ度が上がっていくという仕様としました。

<img width=80% alt="sample.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489184/fc338163-1dfd-9863-c996-68872516276a.png">


## 抑えるべき3つのポイント
実際に認定試験を受けてみて、試験ガイドとは別軸で大きく3つのカテゴリーがあるのかなと感じました。

#### 1. 公式のトレーニングコースの内容の理解
  - 先にご紹介した、トレーニングコースですが、Alexaスキルビルダー専門知識の取得に特化した公式のトレーニングコースになります。即ち、出題される可能性のある分野に絞っての解説となりますので、こちらを開発から公開までの流れを通しで理解することがとても重要です。

#### 2. JSONインターフェースの仕様の理解
  - 実際にAlexaスキルを開発してみると腹落ちしてくる部分があるのですが、開発者コンソールでのスキルの環境設定内容を含めて、リクエスト及びレスポンスは、エンドポイントLambdaとやりとりするためのJSONインターフェースに全て集約されます。この部分は設問にも直結しており、JSON例示から回答を導くという内容も散見されましたので十分な理解が必要です。以下、Alexa Skills Kit 開発者ドキュメントの関連ページをご紹介します。

 - [カスタムスキルのJSONインターフェースのリファレンス](https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/request-and-response-json-reference.html)
  
#### 3. Alexaスキルに関連するAWSリソース
  - AWSリソースについては、カスタムスキルを実装する Lambda、 Lambdaのデバッグに使用する CloudWatch、 
 永続的なデータを保存する際に使用する DynamoDB、 アセットを配置する S3、 CDNとしての CloudFront について抑えておく必要があります。なお、AWSリソースについての設問は比較的素直な内容が多く、アソシエイトレベルの知識があれば十分かと思いました。

# おわりに

Alexaスキルビルダー専門知識については、必要な知識範囲も他の専門知識区分と比べ狭く、日頃から開発者のロールで業務に携わっている方であれば、相対的に取組みやすいほうの認定区分かなと思いました。
今後受験を検討される方の一助になれば幸いです。

#### 著者関連リンク
 - [AWS認定ビッグデータ専門知識(BDS)を、１ヶ月の準備期間で取得した試験準備やったことまとめ](https://qiita.com/go_sougen/items/bfdf5e5d1c6c57ca6141)
 - [AWS認定セキュリティ専門知識(SCS)を、１年の空白期間を経て取得したやったことまとめ](https://qiita.com/go_sougen/items/7a96d2358ffc5eceb960)
 - [AWS認定機械学習専門知識(MLS)を、２ヶ月の集中期間で取得したやったことまとめ](https://qiita.com/go_sougen/items/6a813eac0b2208e43bfb)
 - [AWS認定高度なネットワーキング専門知識(ANS)を、３ヶ月のハンズオン期間を経て取得したやったことまとめ](https://qiita.com/go_sougen/items/ed2df8131b3a2df8a0e8)
 - [AWS認定データベース専門知識(DBS)を、ほぼぶっつけ本番で取得したやったことまとめ](https://qiita.com/go_sougen/items/5e97feaacb387c36e9d1)
 - [AWS 認定クラウドプラクティショナー(CLF)を、これまでの振り返りを兼ねて取得したやったことまとめ](https://qiita.com/go_sougen/items/5b5ac0e59fd67e1181ed)