はじめに
Oracle Analytics Cloud(OAC)でファイルやローカル・サブジェクトエリア以外のデータソースにアクセスする際には、「接続」を作成する必要があります。
「接続」はブラウザで簡単に作成できますが、REST APIで作成することもできますので、試してみました。
準備
OACインスタンスに接続するためには、OACインスタンスに関連付けられているIdentity Domainに機密アプリケーションを作成します。
手順はこちらの記事を参考にしてください。
今回はAutonommous Data Warehouse(ADW)への接続を作成したいので、目的のADWインスタンスの資格証明ファイルを入手しておきます。
接続の作成
OCI管理コンソールからCloud Shellを使用します。
ADWの資格証明.zipを展開してcwallet.ssoをアップロードします。
tnsnames.oraを開いて、ADWへの接続文字列を確認しておきます。
Cloud Shellで次のコマンドの<access_token>、<OAC Hostname>、<接続文字列>およびusernameとpasswordを適切な値に置き換えて実行します。
curl -i \
--header 'Authorization: Bearer <access_token>' \
--request POST 'https://<OAC Hostname>/api/20210901/catalog/connections' \
--form 'cert=@"cwallet.sso"' \
--form 'connectionParams="{
\"version\": \"2.0.0\",
\"type\": \"connection\",
\"name\": \"myADW\",
\"description\": \"Sample Oracle ADW connection with a wallet created using Connections API\" ,
\"content\": {
\"connectionParams\": {
\"connectionType\": \"oracle-autonomous-data-warehouse\" ,
\"connectionString\": \"<接続文字列>\" ,
\"username\": \"ADMIN\" ,
\"password\": \"password \",
\"remoteData\": false ,
\"systemConnection\": true ,
\"sslType\": \"ClientSideSSL\"
}
}
}"'
実行結果
HTTP/1.1 201 Created
Date: Mon, 15 Jan 2024 00:43:15 GMT
Content-Type: text/plain
Content-Length: 43
Connection: keep-alive
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
X-ORACLE-DMS-RID: 0:4
X-ORACLE-DMS-RID: 0
X-Content-Type-Options: nosniff
X-ORACLE-DMS-ECID: b7e414cf-8c5d-4ba8-86fb-7f431e5639a4-00032d5b
X-ORACLE-DMS-ECID: b7e414cf-8c5d-4ba8-86fb-7f431e5639a4-00032d5b
X-XSS-Protection: 1; mode=block
Vary: Origin,X-Forwarded-Proto
Strict-Transport-Security: max-age=31536000;
{"connectionID":"J3N5c3RlbScuJ215QURXJw=="}
connectionIDの戻り値は、接続のオブジェクトIDをBase64でエンコードしたものです。
接続の更新
更新したい接続のオブジェクトIDをエンコードします。
エンコードしたオブジェクトIDが「J3N5c3RlbScuJ215QURXJw==」の接続で、ADWにアクセスするユーザー名とパスワードを変更します。
curl \
--header 'Authorization: Bearer <access_token>' \
--request PUT https://<OAC Hostname>/api/20210901/catalog/connections/J3N5c3RlbScuJ215QURXJw== \
--form 'cert=@"cwallet.sso"' \
--form 'connectionParams="{
\"version\": \"2.0.0\",
\"type\": \"connection\",
\"content\": {
\"connectionParams\": {
\"username\": \"scott\",
\"password\": \"password \"
}
}
}"'
接続の削除
削除したい接続のオブジェクトIDをエンコードします。
例えば、オブジェクトIDが「J3N5c3RlbScuJ215QURXJw==」の接続を削除する場合は、次の通りです。
curl -i \
--header "Authorization: Bearer <access_token>" \
--header "Content-Type: application/json" \
--request DELETE https://<OAC Hostname>/api/20210901/catalog/connections/J3N5c3RlbScuJ215QURXJw==
HTTP/1.1 202 Accepted
Date: Mon, 15 Jan 2024 02:04:38 GMT
Content-Type: text/plain
Content-Length: 0
Connection: keep-alive
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
X-ORACLE-DMS-RID: 0:5
X-ORACLE-DMS-RID: 0
X-Content-Type-Options: nosniff
X-ORACLE-DMS-ECID: dac20284-1fb2-47e1-b485-578876cc6131-0003cfce
X-ORACLE-DMS-ECID: dac20284-1fb2-47e1-b485-578876cc6131-0003cfce
X-XSS-Protection: 1; mode=block
Vary: Origin,X-Forwarded-Proto
Strict-Transport-Security: max-age=31536000;
ドキュメント