ASK CLIを使用したAlexa-hostedスキルの作成と管理
Alexa-hostedスキルの作成や管理に、Alexa Skills Kitコマンドラインインターフェース(ASK CLI)を使うことができます。Alexa-hostedスキルの詳細については、Alexa-hostedスキルを使用してスキルをエンドツーエンドで作成するを参照してください。
Alexa-hostedスキルは、次の方法で作成することもできます。
- Alexa開発者コンソールを使用して作成できます。
- 開発者コンソールを使用して、パブリックGitリポジトリからスキルプロジェクトをインポートすることで、Alexa-hostedスキルを作成できます。
概要
ASK CLIを使用してAlexa-hostedスキルを作成する場合、スキルはGitプロジェクトとして管理されます。ASK CLI v2で作成したプロジェクトの構造は次のようになります。
├── ask-resources.json
├── infrastructure/
├── lambda/
│ ├── index.js
│ ├── package.json
│ └── util.js
└── skill-package/
├── interactionModels/
│ └── custom/
│ └── ja-JP.json
└── skill.json
プロジェクトには、次のファイルとフォルダが含まれています。
skill-package/
— スキルのマニフェスト、対話モデル、スキル内商品、画像アセットなどのリソースが含まれます。詳細については、スキルパッケージAPIリファレンスを参照してください。infrastructure/
— スキルがAWS CloudFormationを使用している場合、テンプレートはこのフォルダにあります。lambda/
— スキルのソースコードが含まれています。ask-resources.json
— スキルのJSON設定ファイルです。
ASK CLI v2
ASK CLI v2でAlexa-hostedスキルを作成する
ASK CLI V2で新しいAlexa-hostedスキルを作成するには、newコマンドを使用し、Alexa-hostedスキルでサポートされているNode.jsまたはPythonをプログラミング言語として選択し、Alexa-hostedスキル
をホスティングソリューションとして選択します。これによりAmazon開発者アカウントにステージが開発中の新しいAlexa-hostedスキルが作成され、ローカルコンピューターにスキルのクローンが作成されます。
既存のAlexa-hostedスキルのクローンをローカルコンピューターに作成するには、initコマンドでスキルIDを指定します。
$ ask init --hosted-skill-id <hostedスキルのID>
Alexa-hostedスキルのクローンを作成すると、ASK CLI V2は、スキルのコードを含むGitリポジトリのあるフォルダやスキルパッケージを作成します。このリポジトリは以下のブランチで設定されます。
master
ブランチ — 開発ステージのAWS Lambdaエンドポイントにデプロイされている内容に対応します。prod
ブランチ — スキルが既に公開中である場合、公開中のAWS Lambdaエンドポイントにデプロイされている内容に対応します。
Alexa-hostedスキルに変更をデプロイする(ASK CLI v2)
git push
コマンドでAlexa-hostedスキルに変更をデプロイします。
-
master
にプッシュすると、ローカルコンピューター上のコードがスキルの開発ステージのAWS Lambdaエンドポイントにプッシュされます。また、スキルパッケージディレクトリを変更してmaster
にプッシュすると、対話モデル、スキルマニフェスト、スキル内商品に変更がデプロイされます。 -
master
をprod
へマージしてからprod
へプッシュする操作は、開発者コンソールのコードエディタタブで公開するをクリックすることと同じです。これは公開中のスキルのコードを簡単に修正するのみで、スロット、インテント、発話の変更のような対話モデルの更新はデプロイされません。対話モデルの変更には、認定審査が必要です。
変更をテストしたら、開発者コンソールを使ってスキルをAlexaスキルストアに公開するプロセスに進みます。詳細については、スキルをテストして認定を申請するを参照してください。
Alexa-hostedスキルを簡単に更新する(ASK CLI v2)
スキルが既に公開済みで、公開中のコードに簡単な修正が必要な場合は、開発者コンソールで公開するをクリックして変更を公開中に昇格させるか、以下の実行によりmaster
にプッシュしてmaster
ブランチをprod
にマージすることで変更を加えることができます。
$ git checkout prod
$ git merge master
$ git push
この操作はスキルを使用しているすべてのユーザーに影響します。スロット、インテント、発話の変更などの対話モデルの更新はデプロイされません。master
ブランチにプッシュして、変更内容が失われないようにしてください。そうしないと、スキルが認定に合格したときや変更を公開に昇格させたときなど、開発ステージのスキルが公開されたときに変更内容は上書きされてしまいます。このような場合、master
ブランチのコードがデプロイされ、prod
ブランチのコードは強制的なマージにより置き換えられます。
Alexa-hostedスキルをASK CLI v1からv2に移行する
Alexa-hostedスキルがASK CLI v1.xで作成されている場合は、以下の手順に従ってプロジェクトをアップグレードしてください。
- ASK CLI v1.xでdeployコマンドを実行します。
npm update -g ask-cli
を実行して、ASK CLIをv2.xにアップグレードします。- configureコマンドを実行して、ASK CLIでプロファイルを作成します。
- プロジェクトのルートディレクトリから、前のステップで作成したプロファイルを使用してutil upgrade-projectコマンドを実行します。
アップグレード後、ローカルのdev
ブランチは削除され、dev
ブランチに加えられた以前の変更はmaster
ブランチにマージされ、master
がデフォルトブランチになります。
ASK CLI v1
ASK CLI v1でAlexa-hostedスキルを作成する
ASK CLIを使って新しいAlexa-hostedスキルを作成するには、create-hosted-skillコマンドを使用します。これでAmazon開発者アカウントに開発中ステージの新しいAlexa-hostedスキルが作成されます。デフォルトではスキルはローカルコンピューターにクローンされません。Alexa-hostedスキルをローカルコンピューターにクローンするには、以下のいずれかを実行します。
- create-hosted-skillコマンドで
--auto-clone true
オプションを使用します。これにより新しいAlexa-hostedスキルが作成され、1個のコマンドでスキルがローカルコンピューターにクローンされます。 - 既に作成済みのAlexa-hostedスキルをクローンするには、cloneコマンドを使用します。
Alexa-hostedスキルをクローンすると、ASK CLIは、スキルのコードを含むGitリポジトリのあるフォルダや、対話モデル、スキルマニフェストを作成します。このリポジトリは以下のブランチで設定されます。
dev
ブランチ — 開発者コンソールに表示される最新の保存状態に対応します。master
ブランチ — 開発ステージのAWS Lambdaエンドポイントにデプロイされている内容に対応します。prod
ブランチ — スキルが既に公開中である場合、公開中のAWS Lambdaエンドポイントにデプロイされている内容に対応します。
Alexa-hostedスキルに変更をデプロイする(ASK CLI v1)
git push
コマンドでAlexa-hostedスキルに変更をデプロイします。
dev
ブランチにプッシュする操作は、開発者コンソールのコードタブで保存をクリックすることと同じです。dev
にプッシュし、dev
をmaster
にマージし、master
にプッシュする操作は、開発者コンソールのコードタブでデプロイをクリックすることと同じです。master
をprod
へマージしてからprod
にプッシュする操作は、開発者コンソールのコードエディタタブで公開するをクリックすることと同じです。これは公開中のスキルのコードを簡易修正するのみで、スロット、インテント、サンプル発話の変更などの対話モデルの更新はデプロイされません。
以下に、deployコマンドを使用する手順を示します。この手順では、dev
ブランチとmaster
ブランチでコマンドを実行し、ローカルコンピューターのコードをスキルの開発ステージのAWS Lambdaエンドポイントにプッシュします。
ASK CLIを使用してAlexa-hostedスキルに変更をデプロイするには:
-
dev
ブランチで変更を行います。- <変更を行う>
- <Gitリポジトリのルートディレクトリに移動する>の後、以下のコマンドを実行します。
git add <ファイル名>
git commit
-
deployコマンドを実行します。このコマンドは、
dev
ブランチをmaster
にマージして、ローカルdev
ブランチをリモートdev
ブランチ、およびローカルmaster
ブランチをリモートmaster
ブランチにプッシュします。
変更をテストしたら、開発者コンソールを使ってスキルをAlexaスキルストアに公開するプロセスに進みます。詳細については、スキルをテストして認定を申請するを参照してください。
Alexa-hostedスキルを簡単に更新する(ASK CLI v1)
公開済みのスキルについて、公開中のコードを簡単に修正するには、開発者コンソールで公開するをクリックして変更を公開に昇格させるか、以下を実行してmaster
ブランチをprod
にマージします。
git checkout prod
git merge master
git push
この操作はスキルを使用しているすべてのユーザーに影響します。スロット、インテント、発話の変更などの対話モデルの更新はデプロイされません。また簡単な修正をdev
ブランチとmaster
ブランチにマージして、変更が失われないようにする必要があります。そうしないと、スキルが認定に合格したときや変更を公開に昇格させたときなど、開発ステージのスキルが公開されたときに変更内容は上書きされてしまいます。このような場合、master
ブランチのコードがデプロイされ、prod
ブランチのコードは強制的なマージにより置き換えられます。
AWS CodeCommit認証情報ヘルパー(ASK CLI v1)に関する問題の対処方法
以前のバージョンのGitをインストールした状態でAWS CodeCommit認証情報ヘルパーを設定していると、unable to access
やthe requested URL returned error: 403
などのエラーが表示されることがあります。この問題を解決するには、バージョン2.9以降にGitを更新します。
関連トピック
最終更新日: 2020 年 11 月 05 日