Amazon DynamoDB コネクタ

Select

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

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

前提条件

このドキュメントは、読者が 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 以上または Anypoint Mozart Flow Designer。

このコネクタの新機能

Mule 4 のサポート。

Anypoint Studio 7 で接続する方法

このコネクタを Anypoint Studio で使用するには、まず Exchange からダウンロードして必要に応じて設定します。

Studio にコネクタをインストールする方法

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. このコネクタを検索して [Install (インストール)] をクリックします。

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

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

Studio に設定する方法

  1. pom.xml ファイルに連動関係を追加します。

    <dependency>
      <groupId>org.mule.connectors</groupId>
      <artifactId>mule-dynamodb-connector-4.x</artifactId>
      <version>1.0.0</version>
      <classifier>mule-plugin</classifier>
    </dependency>
  2. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックします。

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

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

    [Global Element Configuration (グローバル要素設定)] ウィザード
  5. 以下の説明に従ってパラメータを設定します。

    パラメータ 説明

    Name (名前)

    参照する設定の名前を入力します。

    Access Key (アクセスキー)

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

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

    パスワードの役割を果たすキー。

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

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

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

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

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

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

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

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

    DynamoDB ユースケース設定

ユースケース: Studio

このユースケースでは、Amazon DynamoDB でテーブルを作成する Mule フローが提供されます。

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 リスナ設定が作成されていない場合は、プラス記号をクリックして新しい HTTP リスナ設定を追加し、[OK] をクリックします ([Host (ホスト)] には「localhost」、[Port (ポート)] には「8081」を使用)。

    Path (パス)

    /createtable

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

  5. 新しいAmazon DynamoDB グローバル要素を追加することで 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 (拡張機能設定)

    Amazon_DynamoDB_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 (表示名)

    Logger (ロガー) (または他の任意の名前)

    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">
	<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>

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub