技術ブログ
目次
Oracle Database Cloud ServiceにはRESTのAPIが提供されており、情報の取得や操作を実行できます。
REST APIとは、端的にいうと、HTTPリクエスト1発でキックできる処理のエンドポイントです。
サービスにREST APIが用意されていると、サービスに関する処理をプログラム可能になります。また、処理を、HTTPリクエストを発行できるコマンド(curlコマンドなど)を用いて簡単に実行でできるようになります。
というわけで、REST APIを用いてOracle Database Cloud Serviceインスタンスをさくっと作成してみましょう。
手順は以下の通りです。
Request Body - Create a Service Instanceの記載にしたがって、設定値を記述したJSONファイルを用意します。
JSONファイルは、REST API処理で一般的に使用されるファイル形式です。詳細は JavaScript Object Notation - Wikipediaを参照ください。
以下は、Oracle Database 12.1.0.2のOracle Database Cloud Serviceインスタンスに対応するJSONファイルです。
{
"serviceName": "DB12c-EE-EP",
"version": "12.1.0.2",
"level": "PAAS",
"edition": "EE_EP",
"subscriptionType": "HOURLY",
"description": "created by REST API",
"shape": "oc3",
"parameters": [
{
"type": "db",
"usableStorage": "15",
"adminPassword": "Oracle123_",
"sid": "PROD",
"pdb": "PDB1",
"failoverDatabase": "no",
"backupDestination": "DISK",
}
],
"vmPublicKeyText": "ssh-rsa xxxx(snip)xxxx"
}
各項目の意味については、Request Body - Create a Service Instanceを参照いただきたいのですが、注意すべき項目について触れておきます。
Oracle Database Cloud Serviceのエンドポイントに対して、
1.で作成したJSONファイルをcurlコマンドのデータ(--data)に指定して、
HTTPリクエストを発行します。
ORACLECLOUD_USER='ryota.watabe@cosol.jp'
ORACLECLOUD_PWD='password_string'
ORACLECLOUD_IDDOMAIN=jpcosolxxxx
CREATEDB_JSON_FILENAME=createdbcs1.json
ENDPOINT_PATH=/paas/service/dbcs/api/v1.1/instances/${ORACLECLOUD_IDDOMAIN}
curl --include --request POST \
--user ${ORACLECLOUD_USER}:${ORACLECLOUD_PWD} \
--header "X-ID-TENANT-NAME:${ORACLECLOUD_IDDOMAIN}" \
--header "Content-Type:application/json" \
--data @${CREATEDB_JSON_FILENAME} \
https://dbaas.oraclecloud.com/${ENDPOINT_PATH}
留意点は以下の通りです。
これで(課金のことを心配しなければ :-P)さくさくOracle Database Cloud Serviceインスタンスが作成できます。 🙂