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リージョン
英語(オーストラリア) .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
日本語(日本) .co.jp 米国西部(オレゴン)us-west-2
ポルトガル語(ブラジル) .com.br 米国東部(バージニア北部)us-east-1
スペイン語(スペイン) .es 欧州(アイルランド)eu-west-1
スペイン語(メキシコ) .com.mx 米国東部(バージニア北部)us-east-1
スペイン語(米国) .com 米国東部(バージニア北部)us-east-1

使用制限

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開発者コンソールホスティングページで確認できます。また、Amazon S3ストレージの使用量は、コードエディタタブの左下にメディアストレージ: S3[n.n/5GB]と表示されます。使用状況には、永続性用データのストレージなどが含まれます。

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

エンドポイントとデプロイ

Alexaは、Alexaの各サービスリージョンにAlexa-hostedスキルのAWS Lambdaエンドポイントをプロビジョニングします。ホストされたデフォルトのエンドポイントを変更すると、スキルはAlexa-hostedスキルではなくなり、コンソールのコードエディターで新しいエンドポイントにデプロイしなくなります。デフォルトのエンドポイントを変更した場合、コンソールのコードエディターからの操作で、Alexa-hostedエンドポイントに戻すことができます。

Alexa-hostedスキルが公開されると、コンソールには2つのステージのスキルが表示されます。1つは公開中、1つは開発中です。スキルの開発中ステージでは、コードエディターを使ってコードの編集、保存、AWS Lambdaエンドポイントの開発中バージョンへのデプロイができます。このアクションは、スキルの公開中エンドポイントに影響しません。その後、テストタブに移動し、変更をテストできます。

スキルの音声モデルを変更した場合は、スキルの再認定を申請する必要があります。スキルのコードのみを変更した場合、コードエディターの公開中にするボタンをクリックしてコードを開発中から公開中に昇格させます。この操作では、公開したスキルの公開中ステージのコードが置換されます。

Alexa-hostedスキルの公開中コードの簡易修正には、まず開発中ステージで変更を行い、変更をテストしてから、スキルの公開中エンドポイントに変更を昇格させることをおすすめします。公開中スキルへの簡易修正を、開発中コードとマージせずに適用したい場合は、公開中エンドポイントを直接修正できます。ただし、変更内容を事前にテストすることはできません。公開中エンドポイントを直接修正するには、公開中ステージのコードエディターを開き、コードを編集して、デプロイして公開をクリックします。