サンプルカスタムスキルをウェブサービスとしてデプロイする
Alexa Skills Kitで提供するJavaサンプルは、ウェブサービスとしてホストすることができます。このドキュメントでは、コマンドライン上でサンプルを実行する場合と、サンプルをアマゾンウェブサービスのサービスであるAWS Elastic Beanstalkでウェブサービスとしてデプロイする場合の両方のシナリオの手順を説明します。
通常は、サンプルをAWS Lambda(アマゾンウェブサービスが提供するサービスの1つ)上のAWS Lambda関数としてデプロイおよびテストするほうが迅速かつ簡単です。Lambdaは、Java、Node.jsのどちらのサンプルでも利用できます。詳細な手順については、「サンプルカスタムスキルをAWS Lambdaにデプロイする」を参照してください。
サンプルは、GitHubのリポジトリで入手できます。サンプルの入手方法と個々のサンプルの詳細については、Alexa Skills Kitサンプルを使用する(カスタムスキル)を参照してください。
システム要件
サンプルをセットアップして実行するには以下の要件を満たす必要があります。
repo
ディレクトリで提供されるJavaライブラリ(alexa-skills-kit-x.x.jar
)。- Java SE Development Kit(JDK)7以降。JDKをダウンロードするには、http://www.oracle.com/technetwork/java/javase/downloads/index.htmlにアクセスしてください。
- Maven。依存関係管理とサンプルのビルドのために使用します。
追加の要件は、サンプルのテスト方法によって異なります。以下の関連セクションを参照してください。
コマンドラインからサンプルをビルドして実行する
これらの手順は、LinuxプラットフォームのコマンドラインからHello Worldサンプルをビルドして実行する方法を示しています。これにより、cURL
などのコマンドラインツールを使用してHTTPリクエストを送信できます。
src/main/java
フォルダーのLauncher
クラスは、HelloWorldSpeechlet
など、いずれかのサンプル用のSpeechlet
をホストできるJettyサーバーを起動します。この方法はコマンドラインからサンプルを実行する便利な方法です。
この方法では、通常、インターネットでアクセス可能なエンドポイントを介してサンプルを実行できないため、実際の端末を使用してコードをテストすることはできません。ただし、Alexaスキルでウェブサービスによって使用されるリクエストや応答を理解するためには、コマンドライン上でのテストは有効です。サンプルをクラウドにデプロイする例については、下のElastic BeanstalkでHello Worldをセットアップするを参照してください。
コマンドラインからHello Worldを実行するには、前述のJavaの要件に加えて以下のツールが必要となります。
コマンドラインからサンプルを実行するには、以下の手順を実行してください。
- amzn/alexa-skills-kit-java GitHubリポジトリをダウンロードするか、クローンを作成します。
- 自己署名証明書を作成します。
- 秘密鍵と証明書を使用してJavaキーストアをセットアップし、サンプルの
pom.xml
ファイルにキーストアの情報を含めます。SSL/TLS Javaキーストアをセットアップするを参照してください。 - Mavenを使ってサンプルをビルドして実行し、
cURL
を使用してサンプルにリクエストを送信して応答を書き留めます。コマンドラインからサンプルを実行するを参照してください。
これらの手順では、<alexa-skills-kit-folder>
が、GitHubリポジトリからクローン作成したフォルダーになります。
SSL/TLS Javaキーストアをセットアップする
これらの手順に従って、Javaキーストアを作成し、作成したキーストアを使用してHello Worldサンプルを設定し、ビルドします。
- 秘密鍵と自己署名証明書を作成します。詳細な手順については、自己署名証明書を使用するようウェブサービスを設定するを参照してください。
-
以下の
openssl
コマンドを使用して、秘密鍵と証明書からPKCS #12アーカイブファイルを作成します。private-key.pem
とcertificate.pem
の値を秘密鍵と証明書のファイル名で置き換えてください。プロンプトが出たら、アーカイブのパスワードを指定します。openssl pkcs12 \ -keypbe PBE-SHA1-3DES \ -certpbe PBE-SHA1-3DES \ -inkey private-key.pem \ -in certificate.pem -export \ -out keystore.pkcs12 \
-
以下の
keytool
コマンドを使用して、PKCS #12ファイルをJavaキーストアにインポートします。その際、インポート元のPKCS #12アーカイブとインポート先のキーストアの両方のパスワードを指定してください。$JAVA_HOME/bin/keytool \ -importkeystore \ -destkeystore java-keystore.jks \ -srckeystore keystore.pkcs12 \ -srcstoretype PKCS12 \
-
<alexa-skills-kit-folder>
/samples
内のpom.xml
ファイルを編集して、システムプロパティjavax.net.ssl.keyStore
およびjavax.net.ssl.keyStorePassword
の設定を指定します。キーストアへのパスと前の手順で作成したパスワードの値を設定してください。<java classname="Launcher" classpathref="java.sdk.classpath" fork="true"> <sysproperty key="javax.net.ssl.keyStore" value="/insert/your/path/java-keystore.jks" /> <sysproperty key="javax.net.ssl.keyStorePassword" value="insert_your_password" /> </java>
コマンドラインからサンプルを実行する
Mavenを使ってサンプルをビルドして実行します(mvn
)。
- コマンドラインターミナルで
<alexa-skills-kit-folder>
/samples
に移動します。このフォルダーには、以前に編集したpom.xml
ファイルが含まれています。 -
以下のMavenコマンドで、サンプルをビルドします。
mvn assembly:assembly -DdescriptorId=jar-with-dependencies package
-
サンプルが正常にビルドされたら、以下のMavenコマンドでサンプルを実行します。
mvn exec:java -Dexec.executable="java" -DdisableRequestSignatureCheck=true
サンプルによって、Launcher
クラスでサーバーが起動されます。その後、コマンドラインユーティリティのcURL
を使用して、HTTPS
リクエストをサンプルに送信し、サンプルの動作をテストします。サンプルを実行するMaven
コマンドには、disableRequestSignature
フラグが含まれていることに注意してください。これは、Javaライブラリに含まれるSpeechletServlet
がAlexaによって署名されたHTTPSリクエストしか受け入れないためです。disableRequestSignature
フラグは、この署名の検証を一時的に無効化します。
cURL
を使用してリクエストを送信するには、新しいターミナルウィンドウを開いてhttps://localhost:8888/hello
にJSON形式にフォーマットされたリクエストを送信してください。例(分かりやすいようにJSONを複数行に分けて記述しています):
curl -v -k https://localhost:8888/hello --data-binary '{
"version": "1.0",
"session": {
"new": true,
"sessionId": "session1234",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.1234"
},
"attributes": {},
"user": {
"userId": null
}
},
"request": {
"type": "LaunchRequest",
"requestId": "request5678",
"timestamp": "2015-05-13T12:34:56Z"
}
}'
起動リクエストのJSON構文の詳細については、カスタムスキルのJSONインターフェースのリファレンスを参照してください。
Hello Worldのサンプルでは、すべてのリクエストに対して、Alexaが音声で応答するテキストとAlexaアプリに表示されるカードを含む単純な応答を生成します。この応答の本文はJSON形式で、以下のように記述されます。
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "ようこそ、アレクサスキルキットへ。こんにちは、と言ってみてください。"
},
"card": {
"type": "Simple",
"title": "HelloWorld",
"content": "ようこそ、アレクサスキルキットへ。こんにちは、と言ってみてください。"
},
"reprompt": {
"outputSpeech": {
"type": "PlainText",
"text": "ようこそ、アレクサスキルキットへ。こんにちは、と言ってみてください。"
}
},
"shouldEndSession": false
},
"sessionAttributes": {}
}
Elastic BeanstalkでHello Worldをセットアップする
サービスシミュレーターまたはAlexaが使えるデバイスを使用してスキルをテストするには、インターネットでアクセス可能なエンドポイントでAlexaスキル用のウェブサービスをホストする必要があります。これを実現するには、さまざまな方法があります。その1つに、AWS Elastic Beanstalk(アマゾンウェブサービスで提供されるサービスの1つ)でスキルをホストする方法があります。ここからは、Elastic Beanstalk上でHello Worldサンプルをセットアップする手順を説明します。
AWS Elastic BeanstalkにHello Worldをデプロイするには、前述のJavaの要件に加えて以下のツールが必要となります。
- OpenSSL
- アマゾンウェブサービス(AWS)のアカウント
- AWS Toolkit for Eclipse(このプラグインを利用するにはEclipse Java EEが必要です)
- AWSコマンドラインインターフェース
- MavenおよびMaven Integration for Eclipse
これらの手順では、<alexa-skills-kit-folder>
が、GitHubリポジトリからクローン作成したフォルダーになります。
Elastic Beanstalkにサンプルをデプロイするには、以下の手順を実行してください。
- amzn/alexa-skills-kit-java GitHubリポジトリをダウンロードするか、クローンを作成します。
- AWSのアカウントをまだお持ちでない場合は、アマゾンウェブサービスにアクセスしてアカウントを作成します。
- AWS Toolkit for Eclipseをインストールします。
-
アカウントの認証情報を使用して、AWS Toolkit for Eclipseを設定します。a.AWSマネジメントコンソールにログインして、Identity and Access Management (IAM)に移動します。b.新しいIAMユーザーを作成し、Elastic Beanstalkへのフルアクセスの権限を付与します。c.新しいユーザーのアクセスキーを生成するオプションを選択します。これらの認証情報のダウンロードを選択します。Eclipseで、Windowをクリックし、Preferencesをクリックします。AWS Toolkitセクションで、アクセスキーのIDとシークレットアクセスキーを入力します。
-
一度Mavenを実行して、Alexa Skills KitのJavaライブラリ(
alexa-skills-kit-x.x.jar
)をローカルリポジトリに追加します。a.コマンドラインで、<alexa-skills-kit-folder>
/samples
に移動します。b.次のコマンドを実行します。mvn install
。これにより、コンパイルされた
jar
ファイルが<alexa-skills-kit-folder>
/repo
からローカルのMavenリポジトリにコピーされ、後でサンプルをビルドするときに利用できるようになります。 maven-archetype-webapp
アーキタイプを使用してMavenプロジェクトを新規作成し、サンプルコードをインポートします。Mavenウェブアプリプロジェクトを作成してコードをインポートするを参照してください。HelloWorldSpeechlet
をホストするようSpeechletServlet
を拡張するクラスを追加し、web.xml
でサーブレットマッピングをセットアップします。SpeechletServletを追加してサーブレットマッピングをセットアップするを参照してください。- プロジェクトをAWS Elastic Beanstalkにデプロイします。サンプルをElastic Beanstalkにデプロイするを参照してください。
- HTTPSを使用するよう新しいElastic Beanstalk環境を設定します。HTTPSを使用するようElastic Beanstalk環境を設定するを参照してください。
- 開発者コンソールでサンプルを登録します。開発者コンソールでサンプルを登録するを参照してください。
- 開発者コンソール上のAlexaシミュレーターまたは開発者コンソールアカウントに登録したAlexa搭載デバイスを使用してスキルをテストします。サンプルをテストするを参照してください。
Mavenウェブアプリプロジェクトを作成してコードをインポートする
Mavenのmaven-archetype-webapp
アーキタイプは、ウェブアプリとして構成され、Mavenを使用してビルドするためにセットアップされたプロジェクトを新規作成します。
プロジェクトをセットアップする際、ファイルとフォルダーをファイルシステムからEclipseにドラッグできます。プロンプトが出たら、ファイルをプロジェクトにコピーするオプションを選択します。
- Eclipseでは、File > New > Maven Projectの順にクリックします。
- このオプションが選べない場合は、File > New > Projectを選択し、Mavenを展開してMaven Projectオプションを選択します。
- プロジェクトの新規作成のダイアログボックスにMavenが表示されない場合は、EclipseのバージョンにMaven Integration for Eclipseが含まれていることを確認してください。
- プロジェクトの場所を選択します。Create simple projectオプションが選択されていないことを確認してください。
- アーキタイプを選択するプロンプトが出たら、maven-archetype-webappを選択します。アーキタイプのリストは長いため、フィルターボックスに「webapp」と入力してフィルタリングすることをお勧めします。
- プロジェクトのグループIDとアーティファクトIDを入力します。たとえば、これらのフィールドの両方にalexa-skills-kit-samplesを指定することもできます。
これにより、新規の空のプロジェクトが作成され、ウェブアプリとしてセットアップされます。その後、サンプルソースコードと依存関係を追加する必要があります。
- プロジェクトには、
src/main
フォルダーが必要です。main
にjava
フォルダーがない場合は、java
という名前のフォルダーを新規に作成してください。最終的には、src/main/java
のようになります。 helloworld
フォルダーを<alexa-skills-kit-folder>
/samples/src/main/java
から、新規プロジェクトのsrc/main/java
フォルダーにコピーします。- これを行うには、Copy files and foldersオプションを選択して
helloworld
をEclipseにドラッグするか、ファイルシステムでフォルダーをコピーします。 - これで、プロジェクトには、2つのクラス(
HelloWorldSpeechlet
およびHelloWorldSpeechletRequestStreamHandler
)を含む、helloworld
という1つのパッケージが含まれているはずです。2つ目のクラスはLambda用なので、この例では使用しません。
- これを行うには、Copy files and foldersオプションを選択して
<alexa-skills-kit-folder>
/samples/pom.xml
ファイルをMavenプロジェクトのルートにコピーし、プロジェクト作成時に生成されたpom.xml
を置換します。サンプルで提供されるpom.xml
では、サンプルのビルドに必要なすべての依存関係がすでにセットアップされています。ただし、この依存関係はWARではなくJARファイルをビルドするためにセットアップされたものです。pom.xml
ファイルを編集して以下の変更を行います。<packaging>
の設定をwar
に変更します。<build>
の下に、次の行を追加します。<finalName>alexa-skills-kit-samples</finalName>
- プロジェクトを右クリックし、Maven、Update Projectの順にクリックします。
SpeechletServletを追加してサーブレットマッピングをセットアップする
Javaライブラリには、SpeechletServlet
クラスが含まれます。このJava EEサーブレットを実装することで、HTTPリクエスト本文のシリアライズおよびデシリアライズが処理され、リクエスト(onLaunch()
、onIntent
など)に応じて適切なSpeechlet
のメソッドが呼び出されます。
Elastic Beanstalk上でウェブサービスをホストするには、このクラスを拡張し、サンプル(HelloWorldSpeechlet
)内に適切なSpeechlet
クラスをインスタンス化するコンストラクターを追加する必要があります。その後、プロジェクトのweb.xml
ファイルでサーブレットマッピングをセットアップします。
SpeechletServlet
を作成するには、以下の手順を実行します。
helloworld
パッケージで、com.amazon.speech.speechlet.servlet.SpeechletServlet
を拡張するクラスを新規作成します。この例では、新しいクラスにHelloWorldServlet
という名前をつけています。setSpeechlet()
を呼び出すことで、HelloWorldSpeechlet
をインスタンス化する新しいクラスのデフォルトコンストラクターを実装します。
HelloWorldServlet
クラスは、以下のようになります。
package helloworld;
import com.amazon.speech.speechlet.servlet.SpeechletServlet;
public class HelloWorldServlet extends SpeechletServlet {
public HelloWorldServlet() {
this.setSpeechlet(new HelloWorldSpeechlet());
}
}
サーブレットマッピングをセットアップするには、以下の手順を実行します。
- プロジェクトで
src/main/webapp/WEB-INF/web.xml
ファイルを開きます。 <servlet>
タグと<servlet-mapping>
タグを追加して、サーブレットクラスを識別し、クラスをURLにマッピングします。
<servlet>
セクションと<servlet-mapping>
セクションは、以下のようになります。
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>helloworld.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
これらの更新がすべて完了したら、すべてのファイルを保存し、プロジェクトを右クリックしてMaven、Update Projectの順にクリックします。
この時点で、プロジェクトのセットアップは完了です。ビルドがすべて正常に行われるかを確認するためにビルドしてみます。プロジェクトを右クリックし、Run As、Maven installの順にクリックします。プロジェクトのtarget
フォルダーにwar
ファイルが作成されていることを確認します。
サンプルをElastic Beanstalkにデプロイする
AWS Toolkit for Eclipseを使用している場合は、Eclipseから直接ウェブプロジェクトをデプロイできます。最初のデプロイで、アプリと環境が新規作成されます。環境はウェブサービスの特定のバージョンを表し、AWSリソース上にデプロイされます。環境名は、ウェブサービスのエンドポイントを判断するのに使用されます。詳細については、Elastic Beanstalkのコンポーネントを参照してください。
ウェブサービスがデプロイされたら、Eclipseでコードを変更して同じ環境に再デプロイできるようになります。これにより、ウェブサービスの新しいバージョンに環境が更新されます。
AWSの価格: Elastic Beanstalkの使用に追加の費用はかかりません。実際にアプリケーションで利用するAWSリソース(EC2など)についてのみ支払いが発生します。EC2の利用価格は地域によって異なります。詳細については、Amazon EC2料金を参照してください。
Hello WorldサンプルをElastic Beanstalkにデプロイするには、以下の手順を実行します。
- Mavenを使用して、プロジェクトの
war
ファイルをビルドします。 プロジェクトを右クリックし、Run As、Maven installの順にクリックします。プロジェクトのtarget
フォルダーにwar
ファイルが作成されていることを確認します。 - Eclipseのプロジェクトエクスプローラーで、プロジェクトを右クリックし、Amazon Web Services、Deploy to AWS Elastic Beanstalkの順にクリックします。
- Manually define a new serverオプションを選択します。
- server typeには、AWS Elastic Beanstalk for Tomcat 8を選択し、Nextをクリックします。
-
Regionで、アプリケーションをデプロイするリージョンを選択します。
注: Alexaからのすべての呼び出しは、AWSの米国東部(バージニア北部)リージョンから送信されます。そのため、パフォーマンスを最適化してコストを削減するには、Elastic Beanstalk環境を米国東部(バージニア北部)地域で作成します。
- Application NameとEnvironment Nameに入力して、Finishをクリックします。
Elastic Beanstalkへのアプリケーションのデプロイには、数分かかることがあります。
ここまでで、ブラウザで環境に接続できるようになりました。ただし、HTTPSを使用するように環境を設定するまでは、サービスでAlexaからのリクエストを受けることができません。
HTTPSを使用するようElastic Beanstalk環境を設定する
Alexaのセキュリティ要件を満たすには、ウェブサービスのエンドポイントで有効なSSL証明書を提示する必要があります。Elastic Beanstalkのテスト時には、自己署名証明書を使用できます。署名済み証明書を提示するように、Elastic Beanstalk環境を設定する必要があります。
サーバー証明書として証明書をアップロードし、HTTPSを使用するようにElastic Beanstalk環境のロードバランサーを設定します。
- 秘密鍵と自己署名証明書を作成します。
- 詳細な手順については、自己署名証明書を使用するようウェブサービスを設定するを参照してください。証明書作成時に新しいElastic Beanstalkエンドポイントのドメイン名を必ず指定してください。
.pem
ファイルの証明書と秘密鍵をメモしておきます。
-
AWSコマンドラインインターフェースのインストールと設定がまだの場合は、ここで実施します。
-
以下のAWSコマンドを使用して、自己署名証明書をサーバー証明書としてAWSにアップロードします。
aws iam upload-server-certificate \ --server-certificate-name CertificateName \ --certificate-body file://path/to/certificate.pem \ --private-key file://path/to/private-key.pem
server-certificate-name
に、AWSの証明書を識別する名前を指定します。certificate-body
に、証明書の.pem
ファイルのパスと名前を指定します。private-key
に、秘密鍵の.pem
ファイルのパスと名前を指定します。
- AWSマネジメントコンソールにログインします。Elastic Beanstalkの新しい環境に移動します。
- 左側のメニューで、設定をクリックし、ロードバランサーセクションを開きます。
-
以下の変更を加えます。
- 安全なリスナーポートを443に設定します。
- プロトコルをHTTPSに設定します。
- SSL証明書IDドロップダウンリストから、手順3でアップロードしたサーバー証明書の名前を選択します。
- 変更を保存します。Elastic Beanstalkで環境が自動的に更新されます。
- ブラウザから、
https://
プロトコルを使用して環境のURLに接続できることを確認します。
開発者コンソールでサンプルを登録する
最後に、開発者コンソールでスキルを作成する必要があります。これで、サンプルをテストできるようになります。登録のフィールドをすべて入力する必要はありません。テストのために最低限入力する必要があるのは、以下のフィールドです。
設定 | 値 |
---|---|
スキル名 |
任意の有効な名前です。 |
呼び出し名 |
任意の有効な呼び出し名です。 |
モデル |
カスタム |
ビルドページ > カスタム > 対話モデル |
各サンプルには、JSON形式の対話モデルが含まれています。開発者コンソールでカスタム > 対話モデル > JSONエディターの順にクリックして、JSONエディターを開きます。サンプルのJSONコードをJSONエディターに貼り付けて、デフォルトのJSONと置き換えます。 |
ビルドページ > カスタム > エンドポイント |
HTTPSオプションを選択し、Elastic Beanstalk環境で定義したエンドポイントを入力します。サーブレットマッピングで設定した |
サンプルをテストする
サンプルをElastic Beanstalkにデプロイし、HTTPSの設定を完了して開発者コンソールに登録したら、スキルと対話するためのフレーズのいずれかを言うことでスキルを呼び出すことができるはずです。
- 「アレクサ、<呼び出し名>で<command>を開始して」
- 「アレクサ、<呼び出し名>に<command>を教えて」
- 「アレクサ、<呼び出し名>を開いて」
サポートされているフレーズのリストについては、会話を始めるためのサポート済みフレーズを参照してください。提供されているサンプルと実行可能なインテントの詳細については、Alexa Skills Kitサンプルを使用する(カスタムスキル)を参照してください。
さまざまな変更を試してみる場合は、プロジェクトでコードを変更してからコードをElastic Beanstalkに再デプロイします。同じElastic Beanstalk環境に再デプロイできます。
- Eclipseのプロジェクトエクスプローラーで、プロジェクトを右クリックし、Amazon Web Services > Deploy to AWS Elastic Beanstalkの順に選択します。
- Run On Serverダイアログボックスで、Choose an Existing Serverを選択し、ウェブサービスをデプロイする既存の環境を選択してFinishをクリックします。
ログファイルにアクセスする
ログファイルは、デバッグやトラブルシューティングの際に非常に有効です。ここで説明するElastic Beanstalkコンフィギュレーションのセットアップでは、ウェブサービスのログファイルに3つの方法でアクセスできます。
- AWSコンソールからログファイルのスナップショットを確認します。このスナップショットには、各ログファイルからの最新の100行が、1回の表示またはダウンロードに含まれます。
- AWSコンソールからすべてのログをダウンロードします。
- Beanstalk環境を、自動的にログをAWS S3バケットにパブリッシュするように設定します。
これらのオプションの詳細については、ログファイルの利用方法を参照してください。
提供されるサンプルは、ログ作成にSLF4Jおよびlog4jを使用しています。デフォルトでは、コンソールターミナルにログメッセージを書き込みます。Elastic Beanstalk環境で保存されるログファイルにログメッセージを書き込むには、log4j.properties
コンフィギュレーションファイルを使用してログ作成ツールを設定する必要があります。このファイルをJavaのウェブプロジェクトのJava Resources\src
ディレクトリに追加します。
たとえば、以下のlog4j.properties
ファイルは、/var/log/tomcat8/helloworld.log
と呼ばれるファイルにログエントリーを書き込むよう、ログ作成ツールを設定します。
log4j.logger.helloworld=info
log4j.rootLogger=info, tail
log4j.appender.tail=org.apache.log4j.FileAppender
log4j.appender.tail.File=${catalina.base}/logs/helloworld.log
log4j.appender.tail.layout=org.apache.log4j.PatternLayout
log4j.appender.tail.layout.ConversionPattern=%d: %-5p %c{1} - %m%n
ログ作成をコンフィギュレーションする方法の詳細については、SLF4Jおよびlog4jを参照してください。
HelloWorldSpeechlet
では、サービスが受け取るリクエストの種類ごとにログエントリーを書き込みます。
private static final Logger log = LoggerFactory.getLogger(HelloWorldSpeechlet.class);
...
@Override
public SpeechletResponse onLaunch(final LaunchRequest request, final Session session)
throws SpeechletException {
log.info("onLaunch requestId={}, sessionId={}", request.getRequestId(),
session.getSessionId());
...
}
上のコンフィギュレーションを使用してHello Worldを起動すると、以下のようなログエントリーが生成されます(Elastic Beanstalkに最新の100行のログのスナップショットが表示されたのと同じです)。
-------------------------------------
/var/log/tomcat8/helloworld.log
-------------------------------------
2015-03-27 18:06:48,976: INFO HelloWorldSpeechlet - onSessionStarted requestId=amzn1.echo-api.request.affeb267-c275-4f43-91ed-620fce5851ab, sessionId=amzn1.echo-api.session.8767a9df-45b2-4525-a376-5b3c8ba3f715
2015-03-27 18:06:49,087: INFO HelloWorldSpeechlet - onLaunch requestId=amzn1.echo-api.request.affeb267-c275-4f43-91ed-620fce5851ab, sessionId=amzn1.echo-api.session.8767a9df-45b2-4525-a376-5b3c8ba3f715