OCI-CLIで、OCIの各インスタンスのライフサイクル状態を取得する方法を紹介します。バッチスクリプトでインスタンス起動・停止を実現する際の事前チェックとして活用できます。
| No. | OCI サービス | 稼働中 の状態 | 停止中 の状態 | コマンド レファレンス |
|---|---|---|---|---|
| 1 | Compute Instance | RUNNING | STOPPED | Docs » compute » instance |
| 2 | Autonomous AI DB (ADB) | AVAILABLE | STOPPED | Docs » db » autonomous-database |
| 3 | Oracle Base Database | AVAILABLE | STOPPED | Docs » db » node |
| 4 | Oracle Analytics Cloud (OAC) | ACTIVE | INACTIVE | Docs » analytics » analytics-instance |
| 5 | OCI Data Integration (OCI DI) | ACTIVE | STOPPED | Docs » data-integration » workspace |
1. Compute Instance
- 指定したインスタンスの状態を取得
oci compute instance get --instance-id <Compute_OCID> --query 'data."lifecycle-state"'
PowerShellの例:(RUNNING - 稼働中)
PS C:\Users\opc> oci compute instance get --instance-id ocid1.instance.oc1.ap-tokyo-1.<中略> --query 'data.\"lifecycle-state\"'
"RUNNING"
PS C:\Users\opc>- 指定したコンパートメント内のすべてのインスタンスの状態の取得
oci compute instance list -c --query 'data[].{"Name":"display-name", "State":"lifecycle-state"}' --output table
PowerShellの例:
PS C:\Users\opc> oci compute instance list -c ocid1.compartment.oc1..<中略> --query 'data[].{"Name":\"display-name\", "State":\"lifecycle-state\"}' --output table
+----------------+---------+
| Name | State |
+----------------+---------+
| Oracle_Linux_8 | RUNNING |
| Windows2019 | STOPPED |
+----------------+---------+
PS C:\Users\opc>2. Autonomous AI Database
- 指定したADBインスタンスの状態を取得
oci db autonomous-database get --autonomous-database-id --query 'data."lifecycle-state"'
PowerShellの例:(AVAILABLE - 使用可能)
PS C:\Users\opc> oci db autonomous-database get --autonomous-database-id ocid1.autonomousdatabase.oc1.ap-tokyo-1.<中略> --query 'data.\"lifecycle-state\"'
"AVAILABLE"
PS C:\Users\opc>- 指定したコンパートメント内のすべてのADBインスタンスの状態の取得
oci db autonomous-database list -c --query 'data[].{"Name":"display-name", "State":"lifecycle-state"}' --output table
PowerShellの例:
PS C:\Users\opc> oci db autonomous-database list -c ocid1.compartment.oc1..<中略> --query 'data[].{"Name":\"display-name\", "State":\"lifecycle-state\"}' --output table
+-------+-----------+
| Name | State |
+-------+-----------+
| ADW02 | STOPPED |
| ADW01 | AVAILABLE |
+-------+-----------+
PS C:\Users\opc>3. Oracle Base Database
確認対象は、DBシステムではなくDBノードの状態です。
DBの詳細画面から、DBノードのOCIDを取得できます。
指定したDBノードの状態を取得oci db node get --db-node-id --query 'data."lifecycle-state"'
Cloud Shellの例:
<username>@cloudshell:~ (ap-tokyo-1)$ oci db node get --db-node-id ocid1.dbnode.oc1.ap-tokyo-1.<中略> --query 'data."lifecycle-state"'
"STOPPED"4. Oracle Analytics Cloud (OAC)
指定したインスタンスの状態を取得oci analytics analytics-instance get --analytics-instance-id --query 'data."lifecycle-state"'
Cloud Shellの例:
<username>@cloudshell:~ (ap-tokyo-1)$ oci analytics analytics-instance get --analytics-instance-id ocid1.analyticsinstance.oc1.ap-tokyo-1.<中略> --query 'data."lifecycle-state"'
"DELETED"OACインスタンスを一時停止しても、課金が完全に停止するわけではありません。通常の15%の課金が引き続き発生します。再開すると、通常の課金に戻ります。課金を完全に停止したい場合は、OACインスタンスを削除する必要があります。
5. OCI Data Integration (OCI DI)
指定したワークスペースの状態を取得oci data-integration workspace get --workspace-id --query 'data."lifecycle-state"'
Cloud Shellの例:
<username>@cloudshell:~ (ap-tokyo-1)$ oci data-integration workspace get --workspace-id ocid1.disworkspace.oc1.ap-tokyo-1.<中略> --query 'data."lifecycle-state"'
"STOPPED"付録 - query引数の書き方
query引数の書き方は、実行環境により違いがあります。
| 実行環境 | 書き方 |
|---|---|
| Linux (or Cloud Shell) | --query 'data."lifecycle-state"' |
| Windows BAT | --query "data.\"lifecycle-state\"" |
| Windows PowerShell | --query 'data.\"lifecycle-state\"' |
"display-name" や "lifecycle-state" のようにハイフンが含まれる項目には、ダブルクォーテーションを付ける必要があります。Windowsの場合、ダブルクォーテーションを付ける際に '
\'(バックスラッシュ) を忘れずに。以上
参考資料
MOSドキュメント(Doc ID 2934259.1)の記載内容の抜粋: