AmazonAlexaスキルの仮想開発環境を構築してみた

# 目的
アレクサで作ってみたいアプリがあるのですが、私自身全く未知な領域ですので、勉強がてら少し触ってみました。
今回はその過程を開発環境の構築から細かく記録しておこうと思います。
ところどころそこまで細かく説明する？ってくらい書いてますが初心者の方でも伝わるように書きました。(伝わるといいな～)
実際の開発はまた後日、記事にしたいと思います。
## AmazonDeveloperアカウントの作成
**まずは開発環境を用意します。**
[AmazonDeveloper](https://developer.amazon.com/ja)
に飛んでログイン及び必須項目の入力を行います。
その後、コンソールの開始をクリックし、amazondeveloperのホーム画面に行きます。
ホーム画面に下記のアレクサの項目があるので、こちらをクリック
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919558/a7256025-8068-92c6-1bad-54577e9c1d07.png)
左上のタブの開発者コンソールをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919558/5020dc06-2b3a-3677-401e-499cf646f4f9.png)
そして青いスキルを作成ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919558/f1719111-e088-94b5-f2f2-dd71b23c48a4.png)
すると
* これから作成するアレクサスキルの名前
* アレクサがしゃべる言語を選択(筆者は日本語を選択)
* スキルに追加するモデルの選択(筆者はカスタムを選択)
* スキルの開発に使用する言語の選択(筆者はPythonを選択)
が出来ます。
これらの選択を終えて作成をすると
* スクラッチで作成
* 豆知識スキル(筆者はこちらを選択)
の２者どちらかを選択します。すると下記のような画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919558/ddd11e61-8a10-e2a4-e9c7-413db8d7788f.png)
上タブの「コードエディタ」を選択するとソースコードがずらーっと出てきます。
この記事を書いている今現在では何が書かれているのか理解できません(笑)

## AWSアカウントの作成
次にAWSのアカウントを作成します。
下記のリンクへ飛んでアカウントの作成を行ってください。
(AWSのリンク)[https://aws.amazon.com/jp/]
途中で、クレジットカードの登録を行います。
アカウント作成の最後に下記の画面が出ますので、筆者は初めてAWSを使用するので**ベーシックサポート-無料**を選択しました。
このサポートプランはあとからでも変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919558/617eb736-5292-71f4-5316-3385feb73cb6.png)
AWSは使用したリソース分だけ料金が請求される仕組みなので、注意が必要かと思います。
料金はストレージ、テータ転送、サーバ構成などで決まるようで、例えばストレージだと1GBで0.025USD(今現在だと約4円ほど)だそうです。この辺は使ってみないとわからないので、今後AWSを勉強する過程にて請求された金額を記載できたらと思います。


## Pythonのインストール
次にPythonをインストールします。
下記のサイトでダウンロードしてください。
バージョンはPython2(2.7以上)、Python3(3.6以上)が必要なようです。
[Pythonダウンロードリンク](https://www.python.org/)
筆者はすでにインストールしてあるので、コマンドプロンプトにてバージョンの確認をしました。
```
python --version
```

と入力すると確認できます。
筆者は**Python 3.7.7**がインストールされていました。

## ASK SDK for Pythonのインストール
ASK SDK for Pythonはpythonのpipコマンドでインストールします。
今回筆者はSDKを仮想環境に構築します。
仮想環境での構築のメリットは**管理がしやすい**点らしいです…(筆者はこれから使うのでまだこのメリットはわかりません)
まず初めにvirtualenvパッケージをインストールします。
コマンドプロンプトにて下記のコマンドを入力してください。
```
pip install virtualenv
```
正常にインストールされたか確認します。
```
pip list
```
上記のコマンドにてインストール済みのパッケージが一覧表示されます。筆者も確認できました。
続いて、alexaスキル用のフォルダを作成します。
てきとーな箇所にフォルダを作成するとまずいので、しっかりディレクトリの位置を確認して作成してください。
作成したいディレクトリの箇所を決めたらコマンドプロンプトにて下記のコマンドを入力してフォルダを作成してください。
```
mkdir <フォルダ名>
```
筆者はskillというフォルダを作成しました。
作成ができたらそのフォルダまで移動します。
コマンドプロンプトにてを入力してskillフォルダまで、移動します。
```
cd skill
```
コマンドプロンプトが下記のディレクトリまで移動出来たらOKです。
```
C:\~~~~~\skill
```
移動ができたら早速仮想環境をフォルダ内に作成します。
次にコマンドプロンプトにて次のコマンドを入力します。
```
virtualenv skill_env
```
するとフォルダ内にskill_envフォルダが作成され、色々なファイルが作成されます。
これで仮想環境は作成できました。次に本題のSDKをインストールします。
SDKのインストールには、先ほど作成した仮想環境をアクティブ化する必要があるようです。
コマンドプロンプトにて下記のコマンドを入力します。
```
skill_env\Scripts\activate
```
するとコマンドラインの先端に次のような表記が表示されます。
```
(skill_env) C:\~~~~\skill
```
この表記が出たら、仮想環境下で作業を行っていることを表しているそうです。
それではSDKをインストールします。
コマンドプロンプトにて次のコマンドを入力します。
```
pip install ask-sdk
```
インストールされたSDKは<font color="red">skill</font>\lib\site-packages内にて確認できます。<font color="red">(skillは作成したフォルダ名なので人によっては異なります。)</font>
これで現在alexaスキルの開発ができる状態になりました。

## 終わりに
今回はAWSにおける開発環境の構築を行いました。
次回からの記事では試しにAWSアプリを作成していきたいと思います。


## 参考文献
* [初めてのスキル開発](https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-python/develop-your-first-skill.html)
* [AWSサポートプランの種類](https://www.cloudsolution.tokai-com.co.jp/white-paper/2022/0126-282.html)
* [よくわかるAWS・クラウド](https://cloudnavi.nhn-techorus.com/archives/1865)