AWS SWF (Simple Workflow Service)を使ってみる(Java)

| コメントをどうぞ

AWS SWF (Simple Workflow Service)を試してみた。まずはaws-java-sdk-1.8.9.1のAwsFlowFrameworkのsampleの中からhelloworldを動かしてみる。

事前準備

事前準備として samples\AwsFlowFramework\access.properties を編集します。
AWS.Access.ID、AWS.Secret.Key、AWS.Account.ID、S3.Access.ID、S3.Secret.Key、S3.Account.IDを入力します。

環境変数 AWS_SWF_SAMPLES_CONFIG に、aws-java-sdk-1.8.9.1\samples\AwsFlowFramework のフルパスを設定します。

AWS管理コンソールからSWFにSample ドメインを作成します。
aws-swf1

ビルド

ビルド前にリージョンをTokyoに変更します。common\ConfigHelper.javaを開きます。

AmazonSimpleWorkflow client = new AmazonSimpleWorkflowClient(awsCredentials);
client.setEndpoint(this.swfServiceUrl);
Region apNortheast1 = Region.getRegion(Regions.AP_NORTHEAST_1);
client.setRegion(apNortheast1);

ビルドにはJUnit、org.springframework.test、Log4jが必要です。それぞれjarファイルを入手し、aws-java-sdk-1.8.9.1\third-partyに配置します。
aws-java-sdk-1.8.9.1\samples\AwsFlowFrameworkからコマンドプロンプトを開いて、antを実行するとビルドされます。

ActivityHostの起動

aws-java-sdk-1.8.9.1\samples\AwsFlowFrameworkからコマンドプロンプトを開いて、以下のコマンドを実行すると起動されます。

ant -f build.xml -Dmain-class="com.amazonaws.services.simpleworkflow.flow.examples.helloworld.ActivityHost" run

WorkflowHostの起動

aws-java-sdk-1.8.9.1\samples\AwsFlowFrameworkからコマンドプロンプトを開いて、以下のコマンドを実行すると起動されます。

ant -f build.xml -Dmain-class="com.amazonaws.services.simpleworkflow.flow.examples.helloworld.WorkflowHost" run

WorkflowExecutionStarterの起動

aws-java-sdk-1.8.9.1\samples\AwsFlowFrameworkからコマンドプロンプトを開いて、以下のコマンドを実行すると起動されます。

ant -f build.xml -Dmain-class="com.amazonaws.services.simpleworkflow.flow.examples.helloworld.WorkflowExecutionStarter" run

実行すると、WorkflowExecutionStarterのコンソールにメッセージが表示されます。

Started helloWorld workflow with workflowId="xxx" and runId="xxx"

最初に起動したActivityHostのコンソールにメッセージが表示されます。

Hello User!

AWS管理コンソールからWorkflow Executionsを検索すると、先ほど起動して完了した履歴が確認できます。
aws-swf2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>