Alexa-hostedスキルを使用してスキルをエンドツーエンドで作成する



Alexa-hostedスキルを使用してスキルをエンドツーエンドで作成する

通常、Alexaスキルのコードとリソースは開発者自身が保存します。しかし、Alexa-hostedスキルを作成すると、Alexaはコードとリソースを開発者に代わってAWSに保存します。Alexa-hostedスキルでは、開発者コンソールで利用可能なスキルテンプレートを使用して、すぐにスキル開発を始められます。また、スキルのコーディングは開発者コンソールのオンラインコードエディタで行うことができます。Alexa-hostedスキルの作成や管理に、Alexa Skills Kitコマンドラインインターフェース(ASK CLI)を使うこともできます。

概要

Alexa-hostedスキルでは、スキルの作成、編集、公開がすべて開発者コンソールで完結します。オンラインコードエディタを使えば、スキルのコードを編集し、AWS Lambdaエンドポイントに直接デプロイできます。

Alexa-hostedスキルを作成すると、Alexaは以下をプロビジョニングします。

Alexa-hostedスキルを作成するためにAWSアカウントは必要ありません。Alexaは、必要なAWSリソースをAlexa開発者コンソールから直接プロビジョニングします。Alexaはファイルやリソースを、他のユーザーのアカウントから切り離された個々のアカウントに配置します。また、ファイルが他のユーザーと共有されることはありません。そのほかのAWSサービスを利用する必要がある場合やAWS無料利用枠を超えた場合、追加のリソースのプロビジョニングには独自のAWSアカウントが必要です。詳細については、Alexa-hostedスキルで個人のAWSリソースを使用するを参照してください。

スキルを作成すると、コード管理用のAWS CodeCommitリポジトリもセットアップされます。ASK CLIを使ってこのリポジトリにアクセスしてスキルを編集できます。詳細については、ASK CLIを使用したAlexa-hostedスキルの作成と管理を参照してください。

Alexa-hostedスキルについての説明動画は、YouTubeのSetting Up an Alexa-hosted Skill(英語)を参照してください。

Alexa-hostedスキルの考慮事項

Alexa-hostedスキルを作成する前に、以下の点を考慮してください。

  • Alexa-hostedスキルとして開発できるのはカスタム音声対話モデルのスキルのみです。現時点では、スマートホームスキルなど、プリビルドされた音声対話モデルを使用するAlexa-hostedスキルは作成できません。
  • Node.jsバージョン10.xまたはPythonバージョン3.7を使用してAlexa-hostedスキルを構築できます。スキルを作成するときに、スキルのランタイムを選択します。スキルのランタイムを選択すると、後から変更できません。
  • スキルユーザーから近いリージョンでS3とDynamoDBリソースをプロビジョニングすることで、スキルの体感速度を向上することができます。詳細はリソースをさまざまなAWSリージョンでホスティングするを参照してください。

Alexa-hostedスキルを作成する

Alexa-hostedスキルは、次の方法で作成できます。

リソースをさまざまなAWSリージョンでホスティングする

スキル利用時の体感速度を向上するため、AlexaはAlexa-hostedスキル用に3つのAWS Lambdaエンドポイントをプロビジョニングします。Alexaは、以下の各リージョンでスキルのLambdaエンドポイントをプロビジョニングします。

  • 米国東部(バージニア北部)us-east-1
  • 欧州(アイルランド)eu-west-1
  • 米国西部(オレゴン)us-west-2

これらのリージョンにAmazon S3とDynamoDBリソースをプロビジョニングできます。次の表に基づいた、ユーザーに最も近いリージョンを選択することをお勧めします。以下は、コンソールでスキルの作成時にデフォルトのホスティングリージョンとして表示されます。

スキルの言語 マーケットプレイス AWSリージョン 推奨されるAWSリージョン
英語(オーストラリア) .com.au 極東 米国西部(オレゴン)us-west-2
英語(カナダ) .ca 北米 米国東部(バージニア北部)us-east-1
英語(インド) .in ヨーロッパ 欧州(アイルランド)eu-west-1
英語(英国) .co.uk ヨーロッパ 欧州(アイルランド)eu-west-1
英語(米国) .com 北米 米国東部(バージニア北部)us-east-1
フランス語(カナダ) .ca 北米 米国東部(バージニア北部)us-east-1
フランス語(フランス) .fr ヨーロッパ 欧州(アイルランド)eu-west-1
ドイツ語(ドイツ) .de ヨーロッパ 欧州(アイルランド)eu-west-1
ヒンディー語(インド) .in ヨーロッパ 欧州(アイルランド)eu-west-1
イタリア語(イタリア) .it ヨーロッパ 欧州(アイルランド)eu-west-1
日本語(JP) .co.jp 極東 米国西部(オレゴン)us-west-2
ポルトガル語(ブラジル) .com.br 北米 米国東部(バージニア北部)us-east-1
スペイン語(スペイン) .es ヨーロッパ 欧州(アイルランド)eu-west-1
スペイン語(メキシコ) .com.mx 北米 米国東部(バージニア北部)us-east-1
スペイン語(米国) .com 北米 米国東部(バージニア北部)us-east-1

使用制限

Amazonでは、developer.amazon.comアカウントで作成できるAlexa-hostedスキルの数を最大75個に制限しています。アカウントに既に75個のAlexa-hostedスキルがある場合、新しい別のAlexa-hostedスキルを作成する前に1個削除する必要があります。

Alexa-hostedスキルはAWSリソースを使用します。リソースはAWSの無料利用枠内に制限されています。Alexa開発者アカウントごとに次の制限が適用されます。

  • AWS Lambda: 月あたり、100万件のAWS Lambdaリクエスト、320万秒のコンピューティング時間を利用できます。
  • Amazon S3: 月あたり、5 GBのAmazon S3ストレージ、20,000件のGETリクエスト、2,000件のPUTリクエスト、15 GBのデータ転送を利用できます。
  • Amazon DynamoDB: 月あたり、Amazon DynamoDBストレージ25 GB、および1 GBのデータ転送送信を利用できます。
  • AWS CodeCommit: 月あたり、50 GBのストレージ、10,000件のGitリクエストを利用できます。

Alexa-hostedスキルの月額のAWS使用量は、Alexa開発者コンソールホスティングページで確認できます。もしくは、ツールバーのUsageアイコンをクリックして、CodeタブからAWSリソースの使用状況を確認することもできます。

AWS無料利用枠の上限を超えると、少なくとも1つのスキルを個人のAWSアカウントまたは別のクラウドサービスアカウントに移動させることで利用量を制限以内に抑えるために30日間の猶予が与えられます。使用量が無料枠の制限を下回らないと、スキルがAlexaスキルストアから削除される可能性があります。スキル用にプロビジョニングされたリソースを悪用しているとフラグされた場合、スキルは30日前にスキルストアから削除される可能性があります。

スキルのエンドポイント

Alexaは、Alexaの各サービスリージョンにAlexa-hostedスキルのAWS Lambdaエンドポイントをプロビジョニングします。デフォルトのエンドポイントをHTTPSエンドポイントに変更すると、スキルはAlexa-hostedスキルではなくなり、コンソールのコードエディターで新しいエンドポイントにデプロイしなくなります。公開中スキルのデフォルトエンドポイントを変更する場合は、独自のAWS LambdaエンドポイントまたはHTTPSエンドポイントを作成し、新しいエンドポイントを使用するためにスキルを再度申請する必要があります。もしくは、開発者コンソールのコードタブで Alexa-hostedエンドポイントを使用するオプションを選択して戻すことができます。