0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Analytics Cloud:REST APIによるシステム設定の管理

Posted at

はじめに

Oracle Analytics Cloud(OAC)に対して、REST APIを使用してできることが徐々に増えてきています。
今回は、コンソールメニューのシステム設定の値をWeb UIの代わりにREST APIで取得したり更新したりする方法を紹介します。

1. 機密アプリケーションの作成

OCI管理コンソールでドメインの詳細を開き、「統合アプリケーション」タブを表示します。
「アプリケーションの追加」をクリックします。
image.png

「機密アプリケーション」を選択し、「ワークフローの起動」をクリックします。
image.png

名前と説明を入力し、下にスクロールします。
image.png

クライアント構成セクションで、「このアプリケーションをクライアントとして今すぐ構成します」を選択します。
認可タイプとして「リソース所有者」を選択し、さらに下にスクロールします。
image.png

トークン発行ポリシーセクションで、「リソースの追加」を選択し「スコープの追加」をクリックします。
image.png

対象となるOACインスタンスを選択し「追加」をクリックします。
image.png

リソースが追加されたことを確認して、「スコープ」をコピーしておきます。
image.png

「次」をクリックします。
image.png

「終了」をクリックします。
image.png

「アクティブ化」をクリックして、作成した機密アプリケーションをアクティブにします。
image.png

「OAuth構成」セクションのクライアントIDとクライアント・シークレットをコピーしておきます。
image.png

2. トークンの取得

2.1 資格情報をBase64でエンコードする

コピーしておいたクライアントIDとクライアント・シークレットが次の値の場合

  • クライアントID: xxxxxxxxxx
  • クライアント・シークレット: zzzzzzzzzz

2つを連結して「xxxxxxxxxx:zzzzzzzzzz」という文字列を作り、これをBase64でエンコードします。
こんな感じになります。これをコピーしておきます。

  • eHh4eHh4eHh4eDp6enp6enp6enp6

2.2 OACインスタンスの情報を取得する

OCI管理コンソールで対象のOACインスタンスの詳細画面に移動し、「追加情報」タブを表示します。
ドメインURLとホスト名をコピーしておきます。
image.png

2.3 トークンを取得する

コピーしておいた

  • ドメインURL
  • 資格情報をBase64エンコードしたもの
  • 機密アプリケーションのリソースのスコープ

を使用してcurlコマンドを実行します。
今回は、curlの実行環境としてCloud Shellを使用しました。
image.png

次のコマンドを実行します。

curl --request POST \
--url https://<ドメインURL>/oauth2/v1/token \
--header 'authorization: Basic <資格情報をBase64エンコードしたもの>' \
--header 'content-type: application/x-www-form-urlencoded;charset=UTF-8' \
-d 'grant_type=password&username=<ユーザー名>&password=<パスワード>&scope=<機密アプリケーションのリソースのスコープ>'

access_tokenとして返ってきた値をコピーしておきます。
image.png

3. システム設定の管理

3.1 キャッシュ有効化の設定を取得

システム設定のキャッシュの有効化に関する値を取得してみます。
OACインスタンスの情報を取得した際にコピーしておいた「ホスト名」を使います。
また、先程のアクセストークンもコピーして使用します。

curl -i --header "Authorization: Bearer <access_token>" \
--request GET https://<ホスト名>/api/20210901/system/settings?key=EnableDataQueryCache

戻り値はこんな感じになります。

HTTP/1.1 200 OK
Date: Fri, 12 Jan 2024 00:32:01 GMT
Content-Type: application/json
Content-Length: 102
Connection: keep-alive
X-ORACLE-DMS-ECID: dac20284-1fb2-47e1-b485-578876cc6131-00011e41
X-ORACLE-DMS-RID: 0
Strict-Transport-Security: max-age=31536000;
vary: Accept-Encoding,X-Forwarded-Proto,origin

{"items":[{"key":"EnableDataQueryCache","value":"true","displayName":"Cache Enable","pending":false}]}

WebのUIで確認すると、こうなっています。
image.png

3.2 キャッシュ有効化の設定を変更する

jsonファイルを作ります。

update_system_settings.json
{
     "items":[               
       {                   
         "key": "EnableDataQueryCache",
         "value": "false"
       }
     ]
}

次のコマンドを実行します。

curl -i --header "Authorization: Bearer <access_token>" \
--header "Content-Type: application/json" \
--request PUT https://<ホスト名>/api/20210901/system/settings \
--data @update_system_settings.json

戻り値です。

HTTP/1.1 202 Accepted
Date: Fri, 12 Jan 2024 00:36:47 GMT
Content-Length: 0
Connection: keep-alive
X-ORACLE-DMS-ECID: b7e414cf-8c5d-4ba8-86fb-7f431e5639a4-0000f080
X-ORACLE-DMS-RID: 0
Strict-Transport-Security: max-age=31536000;
vary: X-Forwarded-Proto,origin

もう一度、Cache Enableの値を取得してみた結果です。

HTTP/1.1 200 OK
Date: Fri, 12 Jan 2024 00:37:05 GMT
Content-Type: application/json
Content-Length: 102
Connection: keep-alive
X-ORACLE-DMS-ECID: dac20284-1fb2-47e1-b485-578876cc6131-00011ef5
X-ORACLE-DMS-RID: 0
Strict-Transport-Security: max-age=31536000;
vary: Accept-Encoding,X-Forwarded-Proto,origin

{"items":[{"key":"EnableDataQueryCache","value":"false","displayName":"Cache Enable","pending":true}]}

Web UIでも確認してみました。
image.png

公式ドキュメント

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?