各製品の資料を入手。
詳細はこちら →PowerBuilder からAmazon S3 のデータに接続してみた
この記事ではCData ADO.NET Provider を使ってPowerBuilder からAmazon S3 にアクセスする方法を説明します。
最終更新日:2021-06-28
この記事で実現できるAmazon S3 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData ADO.NET providers は、PowerBuilder を含むMicrosoft .NET をサポートするあらゆるプラットフォームまたは開発テクノロジーから使用できる、使いやすい標準準拠のデータプロバイダーです。 この記事では、CData ADO.NET Provider for AmazonS3 をPowerBuilder で使う方法について説明します。
CData ADO.NET Provider for AmazonS3 を使ってデータを取得し読み書きを実行する基本的なPowerBuilder アプリケーションを作成する方法について説明します。
- 新規WPF Window Application ソリューションで、接続プロパティに必要なすべてのビジュアルコントロールを追加します。一般的な接続文字列は次のとおりです:
AccessKey=a123;SecretKey=s123;
Amazon S3 リクエストを認可するには、管理者アカウントまたはカスタム権限を持つIAM ユーザーの認証情報を入力します。AccessKey をアクセスキーID に設定します。SecretKey をシークレットアクセスキーに設定します。
Note: AWS アカウント管理者として接続できますが、AWS サービスにアクセスするにはIAM ユーザー認証情報を使用することをお勧めします。
尚、CData 製品はAmazon S3 のファイルの一覧表示やユーザー管理情報の取得用です。S3 に保管されているExcel、CSV、JSON などのファイル内のデータを読み込みたい場合には、Excel Driver、CSV Driver、JSON Driver をご利用ください。
アクセスキーの取得
IAM ユーザーの資格情報を取得するには:
- IAM コンソールにサインインします。
- ナビゲーションペインで「ユーザー」を選択します。
- ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから「セキュリティ認証情報」タブを選択します。
AWS ルートアカウントの資格情報を取得するには:
- ルートアカウントの資格情報を使用してAWS 管理コンソールにサインインします。
- アカウント名または番号を選択し、表示されたメニューで「My Security Credentials」を選択します。
- 「Continue to Security Credentials」をクリックし、「Access Keys」セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。
AWS ロールとして認証
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。RoleARN を指定することでAWS ロールを代わりに使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。
(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、ロールを引き受けるIAM ユーザーのAccessKey とSecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey および SecretKey を指定する場合、ロールは使用できません。
SSO 認証
SSO 認証を必要とするユーザーおよびロールには、RoleARN およびPrincipalArn 接続プロパティを指定してください。各Identity Provider に固有のSSOProperties を指定し、AccessKey とSecretKey を空のままにする必要があります。これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでSSO 認証情報を送信します。
- .NET コントロールからDataGrid コントロールを追加します。
-
DataGrid コントロールのカラムを設定します。Account テーブルからいくつかのカラムを以下に示します:
<DataGrid AutoGenerateColumns="False" Margin="13,249,12,14" Name="datagrid1" TabIndex="70" ItemsSource="{Binding}"> <DataGrid.Columns> <DataGridTextColumn x:Name="idColumn" Binding="{Binding Path=Id}" Header="Id" Width="SizeToHeader" /> <DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=Name}" Header="Name" Width="SizeToHeader" /> ... </DataGrid.Columns> </DataGrid>
- CData ADO.NET Provider for AmazonS3 アセンブリへの参照を追加します。
DataGrid 接続
ビジュアルエレメントが設定されたら、Connection、Command、およびDataAdapter のような標準のADO.NET オブジェクトを使ってSQL クエリの結果をDataTable に表示することができます:
System.Data.CData.AmazonS3.AmazonS3Connection conn
conn = create System.Data.CData.AmazonS3.AmazonS3Connection(connectionString)
System.Data.CData.AmazonS3.AmazonS3Command comm
comm = create System.Data.CData.AmazonS3.AmazonS3Command(command, conn)
System.Data.DataTable table
table = create System.Data.DataTable
System.Data.CData.AmazonS3.AmazonS3DataAdapter dataAdapter
dataAdapter = create System.Data.CData.AmazonS3.AmazonS3DataAdapter(comm)
dataAdapter.Fill(table)
datagrid1.ItemsSource=table.DefaultView
上のコードは、指定したクエリからDataGrid にデータをバインドできます。