Amazon RDS Connector - Mule 4

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

Amazon RDS Connector v1.3

Amazon RDS 用 Anypoint Connector (Amazon RDS Connector) を使用すると、Amazon Relational Database Service (Amazon RDS) API に接続できます。Amazon RDS Connector は Amazon RDS と連携して、コスト効率の高いサイズ変更可能な容量を提供し、ハードウェアプロビジョニング、データベースセットアップ、パッチ設定、バックアップなどの時間のかかる管理作業を自動化できます。

始める前に

Amazon RDS Connector を使用するには、次のものが必要です。

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

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

  • Anypoint Studio バージョン 7.1 以上、または Anypoint Design Center へのアクセス

互換性

Amazon RDS Connector は、以下と互換性があります。

アプリケーション/サービス バージョン

Mule

4.1.1 以降

Amazon Java SDK for RDS

v1.11.649

Java

1.8.0_x

Anypoint Studio

7.1 以降

移行情報

Amazon RDS Connector ​1.2.0​ から ​1.3.0​ への変更には次が含まれます。

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

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

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

POM ファイル情報

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

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

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

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

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

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

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

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

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

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

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

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

Studio でコネクタに追加する

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

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

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

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

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

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

コネクタのグローバル要素の設定

Mule アプリケーションで Amazon RDS Connector を使用するには、プロジェクトのすべての Amazon RDS Connector で使用できるグローバル Amazon RDS 要素を設定します。

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

  2. [Global Configuration Elements (グローバル設定要素)] 画面で、​[Create (作成)]​ をクリックします。
    次のウィンドウが表示されます。

    [Global Configuration Elements (グローバル設定要素)] ウィザード
  3. [Choose Global Type (グローバル種別の選択)] ウィザードで、​[Connector Configuration (コネクタ設定)]​ を展開し、​[Amazon RDS Configuration (Amazon RDS 設定)]​ を選択し、​[OK]​ をクリックします。
    次のウィンドウが表示されます。

    DB インスタンスの作成設定
  4. 以下の説明に従ってパラメーターを設定します。

    パラメーター 説明

    Name (名前)

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

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

    AWS Security Token Service (STS) が提供するセッショントークンを入力します。

    Access Key (アクセスキー)

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

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

    パスワードとして使用されるキーを入力します。

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

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

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

    Amazon RDS クライアントで使用するリージョンを選択します。リージョンを選択しない場合、デフォルトで「us-east-1」が設定されます。

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

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

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

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

XML エディターまたは Standalone を使用した設定

設定ファイルに Amazon RDS 名前空間が含まれていることを確認します。

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:rds="http://www.mulesoft.org/schema/mule/rds"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:spring="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-current.xsd
	http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/rds
	http://www.mulesoft.org/schema/mule/rds/current/mule-rds.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

<!-- Put your flows and configuration elements here -->

</mule>

アプリケーションで Amazon RDS Connector を設定するには、次のグローバル設定コードを使用して、フローの外側と上にグローバル Amazon RDS 設定を作成します。

<rds:config name="Amazon_RDS_Configuration">
	<rds:basic-connection
		accessKey="${config.accessKey}"
		secretKey="${config.secretKey}"
		region="${config.region}"/>
</rds:config>

自分や Amazon Identity and Access Management ユーザーがシークレットアクセスキーを忘れたり紛失したりした場合は、新しいアクセスキーを作成できます。

RDS Connector の操作

Amazon RDS Connector は次の操作をサポートしています。

DB インスタンス

  • CreateDBInstance

  • CreateDBInstanceReadReplica

  • DeleteDBInstance

  • DescribeDBInstances

  • ModifyDBInstance

  • RebootDBInstance

  • RestoreDBInstanceFromDBSnapshot

  • RestoreDBInstanceToPointInTime

  • StartDBInstance

  • StopDBInstance

DB スナップショット

  • CreateDBSnapshot

  • DeleteDBSnapshot

  • DescribeDBSnapshots

  • ModifyDBSnapshot

イベント

  • DescribeEvents

リザーブド DB インスタンス

  • DescribeReservedDBInstances

  • DescribeReservedDBInstancesOfferings

  • PurchaseReservedDBInstancesOffering

コネクタの使用

Amazon RDS Connector は操作ベースのコネクタです。つまり、フローにコネクタを追加するときに、コネクタが実行する特定の Web サービス操作を設定する必要があります。

コネクタの名前空間とスキーマ

Studio でアプリケーションを設計するときに、コネクタの操作をパレットから Anypoint Studio キャンバスにドラッグすると、XML コードにコネクタの名前空間とスキーマの場所が自動的に入力されます。

名前空間: http://www.mulesoft.org/schema/mule/rds

スキーマの場所: http://www.mulesoft.org/schema/mule/rds/current/mule-rds.xsd

Studio の XML エディターまたはその他のテキストエディターで手動でコーディングを行う場合は、名前空間とスキーマの場所を設定 XML の ​<mule>​ タグの内部に貼り付けてください。

<mule xmlns:rds="http://www.mulesoft.org/schema/mule/rds"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:spring="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-current.xsd
	http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/rds
	http://www.mulesoft.org/schema/mule/rds/current/mule-rds.xsd">

      <!-- here it goes your global configuration elements and flows -->

</mule>

ユースケースとデモ

  • Amazon がサポートするすべてのデータベースに任意の DB インスタンスを作成する。

  • 使用可能または実行中の状態の DB インスタンスを停止する。

  • 停止中の状態の DB インスタンスを開始する。

  • 1 つまたは使用可能なすべての DB インスタンスの情報を取得する。

  • DB インスタンスの DB スナップショットを作成する。

  • 1 つまたは使用可能なすべての DB スナップショットの情報を取得する。

  • DB スナップショットを削除する。

Studio での Mule アプリケーションのコネクタの使用

Anypoint Studio 7.0 以降で Mule アプリケーションを開発している場合は、pom.xml ファイルの次の XML スニペットを使用します。

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

x.x.x​ を使用しているコネクタに対応するバージョンに置き換えます。

データベースインスタンスの作成

このデモ Mule アプリケーションは、DB インスタンスを作成します。

DB インスタンスの作成
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

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

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

    RDS HTTP 設定プロパティ
    パラメーター Value (値)

    Display Name (表示名)

    リスナー

    Extension Configuration (拡張機能設定)

    まだ HTTP 要素が作成されていない場合は、プラス記号をクリックして新しい HTTP リスナー設定を追加し、[OK] をクリックします (値はデフォルトのままにする)。

    Path (パス)

    /create-db-instance

  4. HTTP クエリパラメーターを取得してペイロードに設定する HTTP Connector の後に Transform Message コンポーネントをドラッグします。

  5. コンポーネントをクリックしてそのプロパティエディターを開きます。
    DataWeave スクリプトは、次のようになります。

    %dw 2.0
    output application/java
    ---
    {
    	dbInstanceClass : attributes.queryParams.dbInstanceClass,
    	dbInstanceIdentifier : attributes.queryParams.dbInstanceIdentifier,
    	engine : attributes.queryParams.engine,
    	allocatedStorage : attributes.queryParams.allocatedStorage,
    	masterUsername : attributes.queryParams.masterUsername,
    	masterUserPassword : attributes.queryParams.masterUserPassword
    }
  6. Transform Message コンポーネントの後に Logger コンポーネントを追加し、前のプロセッサーで設定されたペイロードデータを Mule コンソールに表示します。

  7. 以下の表に従って Logger を設定します。

    パラメーター Value (値)

    Display Name (表示名)

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

    Message (メッセージ)

    #[payload]

    レベル

    INFO

  8. Amazon RDS Connector を Logger コンポーネントの横にドラッグします。

  9. 新しい Amazon RDS グローバル要素を追加することで RDS Connector を設定します。

    1. [Extension Configuration (拡張機能設定)] 項目の横にあるプラス記号をクリックします。

    2. 以下の表に従ってグローバル要素を設定します。

      パラメーター 説明

      Value (値)

      名前

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

      <Configuration_Name>

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

      AWS Security Token Service (STS) が提供するセッショントークン。

      ${config.sessiontoken}

      Access Key (アクセスキー)

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

      ${config.accesskey}

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

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

      ${config.secretkey}

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

      Region to set for the Amazon RDS Client (Amazon RDS クライアントに設定するリージョン)

      ドロップダウンリストから選択しない場合、デフォルトで「us-east-1」が設定されます。

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

      RDS ユースケース設定
    4. 対応する XML 設定は次のようになります。

      <rds:config name="Amazon_RDS_Configuration">
          <rds:basic-connection accessKey="${config.accessKey}" secretKey="${config.secretKey}"/>
      </rds:config>
  10. [Test Connection (接続をテスト)]​ をクリックして、Mule が Amazon RDS インスタンスに接続できることを確認します。

  11. 正常に接続できた場合は、​[OK]​ をクリックして設定を保存します。そうでない場合は、見直して、誤ったパラメーターを修正してからもう一度テストします。

  12. Amazon RDS Connector のプロパティエディターに戻り、createDbInstance 操作のパラメーターを設定します。

    パラメーター Value (値)

    General (全般)

    Display Name (表示名)

    DB インスタンスの作成に対して表示する名前を入力します。

    Extension Configuration (拡張機能設定)

    作成したグローバル要素への参照名を入力します。

    Db instance class (DB インスタンスクラス)

    #[payload.dbInstanceClass]

    Db instance identifier (DB インスタンス識別子)

    DB インスタンスを一意に識別する有効な識別子を入力します。

    Engine (エンジン)

    Amazon RDS がサポートする 6 個の DB エンジンの中から選択します。

    Security (セキュリティ)

    Master username (マスターユーザー名)

    データベースの有効なユーザー名を入力します。

    Master user password (マスターユーザーパスワード)

    データベースユーザーのパスワードを入力します。

    Storage and Maintenance (ストレージとメンテナンス)

    Allocated Storage (割り当てられたストレージ)

    ストレージを表す数 (GB)。

    DB インスタンスの作成パラメータープロパティ
  13. XML が次のようになっていることを確認します。

    <rds:create-db-instance
    	config-ref="Amazon_RDS_Configuration"
    	dbInstanceClass="#[payload.dbInstanceClass]"
    	dbInstanceIdentifier="#[payload.dbInstanceIdentifier]"
    	engine="#[payload.engine]"
    	allocatedStorage="#[payload.allocatedStorage]"
    	doc:name="Create db instance"
    	masterUsername="#[payload.masterUsername]"
    	masterUserPassword="#[payload.masterUserPassword]"/>
  14. RDS Connector の後に Logger コンポーネントを追加し、DB インスタンスの作成プロセッサーから出力されたペイロードデータを Mule コンソールに表示します。以下の表に従って Logger を設定します。

    パラメーター Value (値)

    Display Name (表示名)

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

    Message (メッセージ)

    #[payload]

    レベル

    INFO

  15. ブラウザーに転送されるペイロードを設定する Logger コンポーネントの後に Transform Message コンポーネントをドラッグします。

  16. コンポーネントをクリックしてそのプロパティエディターを開きます。DataWeave スクリプトは、次のようになります。

    %dw 2.0
    output application/json
    ---
    {
        success: true,
        info: payload
    }
  17. プロジェクトを保存し、Mule アプリケーションとして実行します。
    Package Explorer で、プロジェクトを右クリックし、​[Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)]​ をクリックします。

  18. ブラウザーを開き、URL ​http://localhost:8081/create-db-instance​ を入力して応答を確認します。
    生成された DB インスタンス ID がブラウザーに表示され、その情報がコンソールに表示されます。

デモ XML コード

このユースケース例のフローを Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:rds="http://www.mulesoft.org/schema/mule/rds"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:spring="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-current.xsd
	http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/rds
	http://www.mulesoft.org/schema/mule/rds/current/mule-rds.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

	<http:listener-config
		name="HTTP_Listener_config"
		doc:name="HTTP Listener config">
		<http:listener-connection
			host="127.0.0.1"
			port="8081" />
	</http:listener-config>

	<rds:config
		name="Amazon_RDS_Configuration"
		doc:name="Amazon RDS Configuration">
		<rds:basic-connection
			accessKey="${config.accessKey}"
			secretKey="${config.secretKey}" />
	</rds:config>

	<flow name="create-db-instance-flow">
		<http:listener
			config-ref="HTTP_Listener_config"
			path="/create-db-instance"
			doc:name="Listener"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
	dbInstanceClass : attributes.queryParams.dbInstanceClass,
	dbInstanceIdentifier : attributes.queryParams.dbInstanceIdentifier,
	engine : attributes.queryParams.engine,
	allocatedStorage : attributes.queryParams.allocatedStorage,
	masterUsername : attributes.queryParams.masterUsername,
	masterUserPassword : attributes.queryParams.masterUserPassword
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>

		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
		<rds:create-db-instance
			config-ref="Amazon_RDS_Configuration"
			dbInstanceClass="#[payload.dbInstanceClass]"
			dbInstanceIdentifier="#[payload.dbInstanceIdentifier]"
			engine="#[payload.engine]"
			allocatedStorage="#[payload.allocatedStorage]"
			doc:name="Create db instance"
		 	masterUsername="#[payload.masterUsername]"
			masterUserPassword="#[payload.masterUserPassword]"/>

		 <logger level="INFO" doc:name="Logger" message="#[payload]"/>

		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
	success: true,
    info: payload
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>

	</flow>

</mule>