カスタムスキルのウェブサービスをAWS Elastic Beanstalkにデプロイする



カスタムスキルのウェブサービスをAWS Elastic Beanstalkにデプロイする

Alexaスキルのクラウドベースのサービスは、インターネットアクセスが可能なエンドポイントで利用できる必要があり、またこのエンドポイントはHTTPSを介したリクエストの転送をサポートする必要があります。この条件を満たすエンドポイントの1つに、AWS Elastic Beanstalkがあります。これは、アマゾンウェブサービスが提供するサービスです。

Elastic Beanstalkのデプロイのワークフロー

Elastic Beanstalkワークフローは以下のとおりです。

  1. ウェブサービスを作成し、アプリケーションソースバンドル(Javaの.warファイルなど)を作成します。
  2. 作成したソースバンドルを、新しいアプリケーションのバージョンとしてAWS Elastic Beanstalkにアップロードします。
  3. 必要に応じて、Elastic Beanstalkでアプリケーションをセットアップします。

Elastic Beanstalkは、環境の起動、コードの実行に必要なAWSリソースの作成と設定を自動で行います。環境が起動されたら、必要に応じて環境を管理したり、新しいバージョンをデプロイしたりできます。

Elastic Beanstalkの詳細については、Elastic Beanstalkのドキュメントを参照してください。

Elastic Beanstalkを使って提供されているAlexaサンプルをデプロイし、テストする方法の詳細な例については、サンプルカスタムスキルをウェブサービスとしてデプロイするを参照してください。

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環境で、ポート443HTTPSSSL 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コンソールから以下のように設定できます。

  1. AWSマネジメントコンソールにログインします。Elastic Beanstalkの新しい環境に移動します。
  2. 左側のメニューで、Configurationをクリックし、Software Configurationセクションを開きます。
  3. Environment Propertiesの下で、リストの最後までスクロールし、既存のプロパティの後の空白行に移動します。
  4. 空白行で、以下を入力します。
    • Property Name: プロパティの完全修飾名を入力します(例:com.amazon.speech.speechlet.servlet.timestampToleranceまたはcom.amazon.speech.speechlet.servlet.supportedApplicationIds)。
    • Property Value :プロパティに目的の値を入力します。
  5. プラスボタンをクリックし、新しいプロパティを追加します。
  6. Applyをクリックして変更を保存し、環境を更新します。

Elastic Beanstalkのカスタムプロパティの詳細については、Elastic Beanstalkでのカスタム環境プロパティの使用を参照してください。

次のステップ

次のトピック:

カスタムスキルのビルド手順に戻る