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による実行方法を紹介しています。
今回はREST APIを使用したスナップショットの作成や復元を紹介します。
こちらの記事も参考にしてください。

1. 準備

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

機密アプリケーションを作成しておく必要があります。
手順はこちらと共通です。

1.2 オブジェクトストレージの準備

作成したスナップショットの保管先として、任意のバケットを作成してください。
ここでは、例として「mysnapshot-bucket」バケットを作成しました。
image.png

1.3 OCIDの取得とAPIキーの作成

テナンシのOCIDをコピーしておきます。
image.png

バケットに接続するユーザーのOCIDをコピーしておきます。
image.png

同じユーザーの「APIキー」セクションでAPIキーを追加します。
image.png

「APIキー・ペアの生成」を選択し、秘密キーをダウンロードします。
「追加」をクリックします。
image.png

確認して閉じます。
image.png

フィンガープリントはコピーしておきます。
image.png

2. スナップショットの操作

スナップショットは、OACの「コンソール」-「スナップショット」からGUIで操作することができます。
image.png

REST APIを使用して作成したスナップショットは、オブジェクトストレージに保存され、こちらには表示されません。
image.png
また、ここに表示されているスナップショットをREST APIで操作することもできません。

これ以降、REST APIの実行はCloud Shellでcurlコマンドを使用しました。
image.png

2.1 作成

ホームディレクトリにjsonファイルを作成します。
mysnapshot-bucketというバケットのmyfolderというフォルダの中に、myfirstsnapshot.barという名前で保存する例です。

パラメータ
name スナップショットの名前
bucket 保存先のバケット
ociRegion リージョン
ociTenancyId テナンシのOCID
ociUserID ユーザーのOCID
ociKeyFingerprint 先程コピーしておいたAPIキーのフィンガープリント
ociPrivateKeyWrapped 秘密キーをBase64エンコードしたもの
uri スナップショットファイル名
password スナップショットのパスワード
new_snapshot.json
{
    "type": "CREATE",
    "name": "myfirstsnapshot",
    "storage": {
        "type": "OCI_NATIVE",
        "bucket": "mysnapshot-bucket",
        "auth": {
            "type": "OSS_AUTH_OCI_USER_ID",
            "ociRegion": "ap-tokyo-1",
            "ociTenancyId": "ocid1.tenancy.oc1..aa......",
            "ociUserId": "ocid1.user.oc1..aa......",
            "ociKeyFingerprint": "e1:56:51:......",
            "ociPrivateKeyWrapped": "LS0tLS1CRUdJTiBQUklWQV......"
        }
    },
    "bar": {
        "uri": "file:///myfolder/myfirstsnapshot.bar",
        "password": "snapshotPassword123"
    }
}

秘密キーのBase64エンコード方法

cat myprivate-key.pem | base64 -w 0 > mywrapped-private-key.pem

事前にトークンを取得します。

$ curl --request POST \
> --url https://<Domain URL>/oauth2/v1/token \
> --header 'authorization: Basic <base64(Client ID:Client Secret)>' \
> --header 'content-type: application/x-www-form-urlencoded;charset=UTF-8' \
> -d 'grant_type=password&username=<USERNAME>&password=<PASSWORD>&scope=<SCOPE>'

{"access_token":"eyJ4NXQjUzI1NiI6IjBPdFJxUml...","token_type":"Bearer","expires_in":100}

$

取得したトークンを使って、次のコマンドを実行します。

curl -i --header "Authorization: Bearer <access_token>" \
--header "Content-Type: application/json" \
--request POST https://<OAC Hostname>/api/20210901/snapshots -d @new_snapshot.json

すぐに実行結果とともにworkRequestIdが返されます。
workRequestIdを使用して実行状況を確認することができます。

HTTP/1.1 202 Accepted
Date: Mon, 15 Jan 2024 05:22:02 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 35
Connection: keep-alive
X-ORACLE-DMS-ECID: b7e414cf-8c5d-4ba8-86fb-7f431e5639a4-0003530d
ETag: W/"23-Gwua0jJJZhZXdNPo6M75GkFNn/0"
oa-work-request-id: lfc-ci:6-cu:486
X-ORACLE-DMS-RID: 0
Strict-Transport-Security: max-age=31536000;
vary: X-Forwarded-Proto,origin

{"workRequestId":"lfc-ci:6-cu:486"}

statusがSUCCEEDEDになれば完了です。

curl -i --header "Authorization: Bearer <access_token>" \
--request GET https://<OAC Hostname>/api/20210901/workRequests/lfc-ci:6-cu:486

image.png

2.2 一覧

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

curl -i --header "Authorization: Bearer <access_token>" \
--request GET https://<OAC Hostname>/api/20210901/snapshots

これにより、各スナップショットのIDを取得できます。
復元や削除に必要なので、コピーしておきます。

2.3 復元

ホームディレクトリにjsonファイルを作成します。

restore_mysnapshot.json
{
   "snapshot": {
      "id" : "b35be58e-1851-411f-bfc7-0fa1020866f2",
      "password" : "snapshotPassword123"
   }
}

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

curl -i \
--header "Authorization: Bearer <access_token>" \
--header "Content-Type: application/json" \
--request POST https://<OAC Hostname>/api/20210901/system/actions/restoreSnapshot \
-d @restore_mysnapshot.json

復元のステータスもworkRequestsで適宜確認できます。

2.4 削除

次のコマンドで削除できます。

curl -i --header "Authorization: Bearer <access_token>" \
--request DELETE https://<OAC Hostname>/api/20210901/snapshots/b35be58e-1851-411f-bfc7-0fa1020866f2

実行完了すると、スナップショットの一覧に表示されなくなりますが、オブジェクトストレージから自動的に削除されることはありません。
必要に応じて、自分で削除してください。

3. ドキュメント

4. 参考

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?