カスタムスキルのウェブサービスをAWS Elastic Beanstalkにデプロイする
Note: Sign in to the developer console to build or publish your skill.
カスタムスキルのウェブサービスをAWS Elastic Beanstalkにデプロイする
Alexaスキルのクラウドベースのサービスは、インターネットアクセスが可能なエンドポイントで利用できる必要があり、またこのエンドポイントはHTTPSを介したリクエストの転送をサポートする必要があります。この条件を満たすエンドポイントの1つに、AWS Elastic Beanstalkがあります。これは、アマゾンウェブサービスが提供するサービスです。
注: Alexaサービスからのすべての呼び出しは、AWSの米国東部(バージニア北部)地域から送信されます。そのため、パフォーマンスを最適化してコストを削減するには、Elastic Beanstalk環境を米国東部(バージニア北部)地域で作成します。
Elastic Beanstalkのデプロイのワークフロー
Elastic Beanstalkワークフローは以下のとおりです。
- ウェブサービスを作成し、アプリケーションソースバンドル(Javaの
.war
ファイルなど)を作成します。 - 作成したソースバンドルを、新しいアプリケーションのバージョンとしてAWS Elastic Beanstalkにアップロードします。
- 必要に応じて、Elastic Beanstalkでアプリケーションをセットアップします。
注: ウェブサービスをJavaで作成した場合、AWS Toolkit for Eclipseを使用すると、Eclipse内これらのすべての手順を実行できます。
Elastic Beanstalkは、環境の起動、コードの実行に必要なAWSリソースの作成と設定を自動で行います。環境が起動されたら、必要に応じて環境を管理したり、新しいバージョンをデプロイしたりできます。
Elastic Beanstalkの詳細については、Elastic Beanstalkのドキュメントを参照してください。
Elastic Beanstalkの使用要件
Elastic Beanstalkでウェブサービスをホストするには、以下のアクションが必要です。
- AWSのIdentity and Access Management(IAM)アカウントを作成し、Elastic Beanstalkにフルアクセスを付与します。
- ウェブサービスをソースバンドル(Javaの
.war
ファイルなど)としてElastic Beanstalk環境にアップロードします。 - Elastic Beanstalkはワイルドカード証明書を提供しません。そのため、Alexaスキルをテストするには有効なSSL証明書を提供する必要があります。
- テストでは、自己署名証明書を作成できます。証明書に、Elastic Beanstalk環境のドメイン名を正しく指定してください。
- AWSコマンドラインインターフェースを使って、サーバー証明書として証明書をアップロードします。
- Elastic Beanstalk環境で、ポート443、HTTPS、SSL Certificateを使用するようLoad Balancingオプションを設定します。
- 開発者コンソールのコンフィギュレーションを、Elastic Beanstalk環境の正しいエンドポイントに更新します。
Elastic BeanstalkのJavaシステムプロパティの設定
Javaライブラリを使用する場合、システムプロパティの一部のオプションを設定する必要があります。これにより、これらのオプションが実行時に設定できるようになり、ハードコーディングが不要になります。以下のシステムプロパティを設定できます。
com.amazon.speech.speechlet.servlet.timestampTolerance
: リクエストのtimestamp
を確認する際に許容値を秒数で定義します。このプロパティの使用方法の詳細は、カスタムスキルをウェブサービスとしてホスティングするのリクエストのタイムスタンプを確認するセクションを参照してください。com.amazon.speech.speechlet.servlet.supportedApplicationIds
: サービスでサポートするアプリケーションIDのカンマ区切りのリストを定義します。このプロパティの使用方法の詳細は、Alexaから送信されたリクエストを処理するのサービスに対するリクエストの妥当性を検証するを参照してください。
これらのプロパティは、Elastic Beanstalkコンソールから以下のように設定できます。
- AWSマネジメントコンソールにサインインします。Elastic Beanstalkの新しい環境に移動します。
- 左側のメニューで、Configurationをクリックし、Software Configurationセクションを開きます。
- Environment Propertiesの下で、リストの最後までスクロールし、既存のプロパティの後の空白行に移動します。
- 空白行で、以下を入力します。
- Property Name: プロパティの完全修飾名を入力します(例:
com.amazon.speech.speechlet.servlet.timestampTolerance
またはcom.amazon.speech.speechlet.servlet.supportedApplicationIds
)。 - Property Value: プロパティに目的の値を入力します。
- Property Name: プロパティの完全修飾名を入力します(例:
- プラスボタンをクリックし、新しいプロパティを追加します。
- Applyをクリックして変更を保存し、環境を更新します。
Elastic Beanstalkのカスタムプロパティの詳細については、Elastic Beanstalkでのカスタム環境プロパティの使用を参照してください。
次のステップ
次のトピック:
最終更新日: 2022 年 01 月 19 日