ColdFusion でAmazon S3 データに連携する方法

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Amazon S3 JDBC Driver

Amazon S3 ファイルストレージデータに連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。



ColdFusion の標準的なデータアクセスコードでAmazon S3 にデータ連携。



CData JDBC Driver for Amazon S3 は、ColdFusion のrapid development tools を使ってAmazon S3 への接続をシームレスに統合します。この記事では、ColdFusion でAmazon S3 に連携しAmazon S3 テーブルをクエリする方法を説明します。

※製品について詳しい情報をご希望の方は以下からお進みください。

ColdFusion にAmazon S3 のJDBC データソースを作成

下記の手順に従ってAmazon S3 データソースを作成し、ColdFusion アプリケーションへの連携を可能にします。

  1. ドライバーのJAR および.lic ファイルを、インストールディレクトリから C:\ColdFusion10\cfusion\wwwroot\WEB-INF\lib にコピーします。

    ドライバーのJAR およびlicense はインストールディレクトリの[lib]サブフォルダに配置されています。

  2. ドライバーをデータソースとして追加:

    ColdFusion Administrator インターフェースで[Data & Services]ノードを展開し、[Data Sources]>[Add New Data Source]をクリックします。ダイアログが表示されたら、以下のプロパティを入力します。

    • Data Source Name:データソースの名前を入力。名前はColdFusion 変数命名規則に一致する必要があります。
    • Driver:[Other]を選択。
  3. JDBC Driver のプロパティ設定:

    • JDBC URL:JDBC URL に接続プロパティを入力。JDBC のURL は以下で始まり jdbc:amazons3: 次に、セミコロン区切りでname=value ペアの接続プロパティを入力します。以下は一般的なJDBC URL です:

      jdbc:amazons3:AccessKey=a123;SecretKey=s123;

      Amazon S3 リクエストを認可するには、管理者アカウントまたはカスタム権限を持つIAM ユーザーの認証情報を入力します。AccessKey をアクセスキーID に設定します。SecretKey をシークレットアクセスキーに設定します。

      Note: AWS アカウント管理者として接続できますが、AWS サービスにアクセスするにはIAM ユーザー認証情報を使用することをお勧めします。

      アクセスキーの取得

      IAM ユーザーの資格情報を取得するには:

      1. IAM コンソールにサインインします。
      2. ナビゲーションペインで[ユーザー]を選択します。
      3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから[セキュリティ認証情報]タブを選択します。

      AWS ルートアカウントの資格情報を取得するには:

      1. ルートアカウントの資格情報を使用してAWS 管理コンソールにサインインします。
      2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
      3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

      AWS ロールとして認証

      多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。RoleARN を指定することでAWS ロールを代わりに使用できます。これにより、本製品は指定されたロールの資格情報を取得しようと試みます。

      (すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、ロールを引き受けるIAM ユーザーのAccessKey とSecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey および SecretKey を指定する場合、ロールは使用できません。

      SSO 認証

      SSO 認証を必要とするユーザーおよびロールには、RoleARN およびPrincipalArn 接続プロパティを指定してください。各Identity Provider に固有のSSOProperties を指定し、AccessKey とSecretKey を空のままにする必要があります。これにより、本製品は一時的な認証資格情報を取得するために、リクエストでSSO 認証情報を送信します。

    • Driver Class:ドライバーのクラスを入力。ドライバークラスは、以下のとおりです。cdata.jdbc.amazons3.AmazonS3Driver
    • Driver Name:ユーザー定義のドライバー名を入力。ドライバー名はColdFusion Administrator コンソールでデータソースを認識するために使われます。
    • Username:認証するユーザーネームを入力。
    • Password:認証するパスワードを入力。

[Actions] カラムのCData Amazon S3 データソースを有効にして、接続をテストできます。ステータスがOK になったら、Amazon S3 データソースを使うことができます。

クエリを実行

下記の手順に従って、Amazon S3 の基準に合ったレコードをクエリし、結果をHTML テーブルに出力する簡単なアプリケーションを作成します。

  1. 新規ColdFusion markup ファイルでクエリを定義:C:\ColdFusion10\cfusion\wwwroot directory for ColdFusion の.cfm ファイルに次のコードを入力:

    <cfquery name="AmazonS3Query" dataSource="CDataAmazonS3"> SELECT * FROM ObjectsACL </cfquery>

    Note:CData JDBC Drivers は、cfqueryparam エレメントを使ってパラメータ化されたクエリもサポートします。例:

    <cfquery name="AmazonS3Query" dataSource="CDataAmazonS3"> SELECT * FROM ObjectsACL WHERE Name = <cfqueryparam>TestBucket</cfqueryparam> </cfquery>
  2. CFTable を使ってHTML にテーブルを出力:

    <cftable query = "AmazonS3Query" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"/> <cfcol header="<b>Name</b>" align="Left" width=4 text="#Name#"></cfcol> <cfcol header="<b>OwnerId</b>" align="Left" width=7 text="#OwnerId#"></cfcol> </cftable>
  3. コードを実行してグリッドを表示します。

HTML 部分を含む以下のフルコードが利用できます。

<html> <head><title>Hello World</title></head> <body> <cfoutput>#ucase("hello world")#</cfoutput> <cfquery name="AmazonS3Query" dataSource="CDataAmazonS3"> SELECT * FROM ObjectsACL </cfquery> <cftable query = "AmazonS3Query" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Name</b>" align="Left" width=4 text="#Name#"></cfcol> <cfcol header="<b>OwnerId</b>" align="Left" width=7 text="#OwnerId#"></cfcol> </cftable> </body> </html>