Amazon DynamoDB コネクタ - Mule 4

サポートカテゴリ: 選択

Amazon DynamoDB コネクタ v1.4

Amazon DynamoDB 用 Anypoint コネクタ (Amazon DynamoDB コネクタ) は、Amazon DynamoDB API への接続を提供し、一定の高速なパフォーマンスを維持しながら、Amazon DynamoDB とやりとりして任意の量のデータを保存および取得したり、任意のレベルの要求トラフィックを処理したり、要求容量と保存されたデータ量を処理するのに十分な数のサーバにわたるテーブルでデータとトラフィックを自動的に分散するデータベーステーブルを作成したりできます。

Amazon DynamoDB は完全に管理された NoSQL データベースサービスであり、シームレスな拡張性を備えた高速かつ予測可能なパフォーマンスを提供します。

前提条件

この情報を使用するには、Amazon DynamoDB API、Mule、Anypoint コネクタ、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通している必要があります。

ソフトウェアの要件および互換性情報については、「コネクタリリースノート」を参照してください。

Maven でこのコネクタを使用するには、Anypoint Exchange の [Dependency Snippets (連動関係スニペット)] で pom.xml の連動関係情報を確認してください。

Amazon DynamoDB コネクタを使用するには、次のものが必要です。

  • Amazon Web Services - DynamoDB へのアクセス

  • コネクタで AWS にアクセスするための AWS Identity and Access Management (IAM) ユーザアカウントのログイン情報

  • Anypoint Studio バージョン 7.0 以降または Design Center

POM ファイル情報

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-amazon-dynamodb-connector</artifactId>
  <version>RELEASE</version>
  <classifier>mule-plugin</classifier>
</dependency>

Mule は、RELEASE​ を最新バージョンに変換します。バージョンを指定するには、Anypoint Exchange で Amazon DynamoDB コネクタ​を参照して [Dependency Snippets (連動関係スニペット)]​ をクリックします。

Studio プロジェクトへのコネクタの追加

Anypoint Studio には、コネクタを Studio プロジェクトに追加する 2 つの方法があります。

  • Studio タスクバーの Exchange ボタンから

  • [Mule Palette (Mule パレット)] ビューから

Exchange を使用してコネクタを追加する

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの左上にある Exchange アイコン (X)​ をクリックします。

  3. Exchange で、[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザ名とパスワードを指定します。

  4. Exchange で、「Dynamo」を検索します。

  5. コネクタを選択して [Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「Dynamo」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

Studio でコネクタを設定する

  1. キャンバスの下部にある [Global Elements (グローバル要素)]​ タブをクリックします。

  2. [Global Mule Configuration Elements (グローバル Mule 設定要素)] 画面で、[Create (作成)]​ をクリックします。

  3. [Choose Global Type (グローバル種別の選択)] ウィザードで、[Connector Configuration (コネクタ設定)] を展開し、[Amazon DynamoDB: Configuration (Amazon DynamoDB: 設定)]​ を選択し、[OK]​ をクリックします。

    [Global Element Configuration (グローバル要素設定)] ウィザード
  4. パラメータを次のように設定します。

    パラメータ 説明

    Name (名前)

    参照するコネクタの設定の名前を入力します。

    Session Token (セッショントークン)

    Amazon STS が提供するセッショントークンを入力します。

    Access Key (アクセスキー)

    アカウントを所有するユーザを一意に識別する英数字のテキスト文字列を入力します。

    Secret Key (シークレットキー)

    パスワードの役割を果たすキーを入力します。

    Try Default AWS Credentials Provider Chain (デフォルトの AWS ログイン情報プロバイダチェーンを試す)

    一時的なログイン情報を使用するかどうかを制御するチェックボックスを選択します。

    プレースホルダ値は、プロジェクトの src/main/resources​ フォルダにある設定ファイル mule-artifact.properties​ を参照します。

    ログイン情報をグローバル設定プロパティに入力するか、それらの値を含む設定ファイルを参照することができます。メンテナンスの簡略化とプロジェクトの再利用性の向上のために、設定ファイルを使用することをお勧めします。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

  5. [Advanced (詳細)]​ タブの [Reconnection Strategy (再接続戦略)] はデフォルトエントリのままにします。

  6. [Test Connection (接続をテスト)]​ をクリックして、グローバル設定のパラメータが正確であることと、Mule が Amazon DynamoDB のインスタンスに正常に接続できることを確認します。

  7. [OK]​ をクリックして、グローバルコネクタ設定を保存します。

    設定は次のようになります。

    DynamoDB ユースケース設定

Amazon DynamoDB でのテーブルの作成

Amazon DynamoDB でのテーブルの作成
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. 次のプロパティを mule-artifact.properties​ ファイルに追加して Amazon DynamoDB ログイン情報を保持し、このファイルをプロジェクトの src/main/resources​ ディレクトリに置きます。

    config.accesskey=<Access Key>
    config.secretkey=<Secret Key>
  3. HTTP Listener コンポーネントをキャンバスにドラッグし、次のパラメータを設定します。

    DynamoDB HTTP 設定プロパティ
    パラメータ

    Display Name (表示名)

    リスナ

    Extension Configuration (拡張機能設定)

    HTTP リスナ設定が作成されていない場合:

    1. プラス記号をクリックして、新しい HTTP リスナ設定を追加します。

    2. [Host (ホスト)]​ には localhost​ を使用し、[Port (ポート)]​ には 8081​ を使用します。

    3. [OK]​ をクリックします。

    Path (パス)

    /createtable

  4. Amazon DynamoDB コネクタの Create Table​ を HTTP Listener コンポーネントの横にドラッグします。

  5. 新しい Amazon DynamoDB グローバル要素を追加し、Amazon DynamoDB コネクタを設定します。
    [Connector Configuration (コネクタ設定)] 項目の横にあるプラス記号 +​ をクリックします。

  6. 次のようにグローバル要素を設定します。

    パラメータ 説明

    Name (名前)

    参照するコネクタの設定の名前を入力します。

    <Configuration_Name>

    Access Key (アクセスキー)

    アカウントを所有するユーザを一意に識別する英数字のテキスト文字列を入力します。

    ${amazon.accesskey}

    Secret Key (シークレットキー)

    パスワードの役割を果たすキーを入力します。

    ${amazon.secretkey}

    Region Endpoint (リージョンエンドポイント)

    Amazon DynamoDB クライアントのドロップダウンから選択するリージョン。

    デフォルトでは USEAST1

    設定は次のようになります。

    DynamoDB ユースケース設定

    対応する XML 設定は次のようになります。

    <dynamodb:config name="Amazon_DynamoDB_Configuration1" doc:name="Amazon DynamoDB Configuration" >
      <dynamodb:basic-connection
      	accessKey="${config.accesskey}"
    	secretKey="${config.secretkey}" />
    </dynamodb:config>
  7. [Test Connection (接続をテスト)]​ をクリックして、Mule が DynamoDB インスタンスに接続できることを確認します。正常に接続できた場合は、[OK]​ をクリックして設定を保存します。そうでない場合は、見直して、誤ったパラメータを修正してからもう一度テストします。

  8. Amazon DynamoDB の Create Table​ 操作のプロパティエディタで、残りのパラメータを設定します。

    パラメータ

    Display Name (表示名)

    Create Table 操作に使用する表示名を入力します。

    Basic Settings (基本設定)

    Extension Configuration (拡張機能設定)

    参照するコネクタのグローバル要素で使用する設定名を入力します。

    General

    TableName

    テーブルの名前。

    AttributeDefinitions

    この値は、テーブルとインデックスのキースキーマを記述する属性の配列です。

    KeySchema

    この値は、テーブルまたはインデックスの主キーを構成する属性を指定します。

    ReadCapacityUnits

    5 - 1 秒あたりの厳密な一貫性読み取りの最大数。

    Write Capacity Units (書き込み容量単位)

    5 - 1 秒あたりにコンシュームされる書き込みの最大数。

    メッセージのパブリッシュコネクタプロパティ
  9. XML が次のようになっていることを確認します。

    <flow name="create-table-flow">
    	<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/createtable"/>
    	<dynamodb:create-table doc:name="Create table"
    	  config-ref="Amazon_DynamoDB_Configuration"
    	  tableName="StudentData"
    	  readCapacityUnits="5"
    	  writeCapacityUnits="5">
    		<dynamodb:attribute-definitions >
    			<dynamodb:attribute-definition attributeName="studentId" attributeType="N" />
    		</dynamodb:attribute-definitions>
    		<dynamodb:key-schemas>
    			<dynamodb:key-schema-element attributeName="studentId" keyType="HASH" />
    		</dynamodb:key-schemas>
    	</dynamodb:create-table>
        <logger level="INFO" doc:name="Logger" message="#[payload]"/>
    </flow>
  10. Amazon DynamoDB の Create Table 操作の後に Logger​ コンポーネントを追加し、Mule コンソールの Create Table 操作によって生成された応答を出力します。Logger を次のように設定します。

    パラメータ

    Display Name (表示名)

    ロガーの表示名を入力します。

    Message (メッセージ)

    #[payload]

    Level (レベル)

    INFO

    DynamoDB の Create Table の Logger
  11. プロジェクトを保存し、Mule アプリケーションとして実行します。
    Package Explorer で、プロジェクトを右クリックし、[Run As (別のユーザとして実行)]​ > [Mule Application (Mule アプリケーション)]​ をクリックします。

  12. ブラウザを開き、http://localhost:8091/createtable​ URL を入力して応答を確認します。Mule コンソールに Create Table 操作から生成された応答が表示されます。

XML フロー

Anypoint Studio での DynamoDB の Create Table と Delete Table の XML フロー。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:dynamodb="http://www.mulesoft.org/schema/mule/dynamodb"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/dynamodb
http://www.mulesoft.org/schema/mule/dynamodb/current/mule-dynamodb.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
    <configuration-properties file="mule-artifact.properties" />
	<dynamodb:config
		name="Amazon_DynamoDB_Configuration"
		doc:name="Amazon DynamoDB Configuration">
		<dynamodb:basic-connection
			accessKey="${config.accesskey}"
			secretKey="${config.secretkey}" />
	</dynamodb:config>
	<http:listener-config
		name="HTTP_Listener_config"
		doc:name="HTTP Listener config">
		<http:listener-connection host="localhost"
		port="8091" />
	</http:listener-config>
	<flow name="create-table-flow">
		<http:listener
			doc:name="Listener"
			config-ref="HTTP_Listener_config"
			path="/createtable"/>
		<dynamodb:create-table doc:name="Create table"
		config-ref="Amazon_DynamoDB_Configuration"
		tableName="StudentData"
		readCapacityUnits="5" writeCapacityUnits="5">
			<dynamodb:attribute-definitions >
				<dynamodb:attribute-definition
					attributeName="studentId"
					attributeType="N" />
			</dynamodb:attribute-definitions>
			<dynamodb:key-schemas >
				<dynamodb:key-schema-element
					attributeName="studentId"
					keyType="HASH" />
			</dynamodb:key-schemas>
		</dynamodb:create-table>
		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
	</flow>
	<flow name="delete-table-flow">
		<http:listener
			doc:name="Listener"
			config-ref="HTTP_Listener_config"
			path="/delete"/>
		<dynamodb:delete-table doc:name="Delete table"
		config-ref="Amazon_DynamoDB_Configuration" tableName="StudentData"/>
		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
	</flow>
</mule>

移行情報

バージョン 1.3.0​ から 1.4.0​ への変更には次が含まれます。

  • コネクタに TLS 設定を追加。

  • aws-java-sdk​ を 1.11.604 から 1.11.649 にアップグレード。

  • aws-connector-commons​ を 2.0.2 から 2.2.0 にアップグレード。

Was this article helpful?

💙 Thanks for your feedback!