検索機能で簡単にリソースを探そう
OCIに限らないですが、リソースを探し出すのって結構大変ですよね。
サービスや機能が増えるにつれて、画面構成はしょっちゅう変わりますし、ページの階層は深くなっていきます。たどり着いた先のページでは、忘れずにコンパートメントも切り替えなければいけません。
OCIの検索機能を使用することでより、簡単に、早く、目的のリソースやサービスにたどり着くことができます。本記事では、OCIの検索機能から以下の3つの検索方法についてご紹介します。
- フリーテキスト検索
- 拡張問い合わせ
- CLIからの拡張問い合わせ
目次
検索機能の概要
OCIコンソールの上の部分に検索窓があります。ここにキーワードを入れることで、リソースやサービス、ドキュメントなどについて検索できるようになっています。
利用時の注意点としては、大きく以下の通りです。
- 検索範囲は検索を行ったリージョンのみ
- 作成したばかりのリソースについては即時には反映されない
- 一部ヒットしないリソースが存在する
検索に対応するリソースはOCIドキュメントに追加されるらしいので、意図と違う検索結果となった場合は一度確認することをお勧めします。
確認した範囲では、BaseDBのスタンドアロンバックアップなどは2023年3月時点ではヒットしませんでした。おそらく削除を忘れるリソース1位がスタンドアロンバックアップなので(私調べ)これは目視で確認した方が良さそうです。
フリーテキスト検索
構築時や運用時問わず、一番使う検索なので、使用している人も多いと思います。
リソース名がわかっている場合や、特定のサービスのページを開きたい場合はここから遷移すると、ダイレクトに目的のページにアクセスできます。
「すべてを表示」をクリックすることで、検索結果全体をチェックすることも可能です。
日本語表示の場合、検索結果に表示されるドキュメントについては、文字化けするのであまり使えません。
拡張問い合わせ
フリーテキスト検索が、キーワードの指定による検索であるのに対して、拡張問い合わせは特定の条件をクエリで指定するタイプの検索です。条件に該当するリソースの一覧が表示されます。
フリーテキスト検索の画面下部にある「拡張リソース問合せ」から遷移できます。
クエリとなると若干ハードルが高く聞こえますが、いくつか定義済みのクエリがあり、それを選ぶだけで利用することができます。
「すべてのものの問い合わせ」を選択すると以下のようにクエリが入力されます。
「検索」を選択するとそのまま画面の下部に検索結果が表示されます。
クエリ作成、クエリ実行、クエリの結果表示がページの遷移なく1画面で完結するところや、結果に対して、フィルタをかけて絞り込みが行える点が使いやすい点です。
クエリもシンプルな作りとなっていますので、いくつか紹介します。
より詳しいクエリ構文についてはOCIドキュメントをご覧ください。
- 実行中のインスタンスの問い合わせ
query
instance resources
where lifeCycleState = 'RUNNING'
- コンパートメント内のすべてリソースの問い合わせ
query
all resources
where compartmentId = 'compartmentOcid'
- Always Freeの全てのリソースの問い合わせ
query
all resources
where
systemTags.namespace = 'orcl-cloud' &&
systemTags.key = 'free-tier-retained' &&
systemTags.value = 'true'
残念ながら、検索結果をファイルでダウンロードする機能はありませんので、テキストが欲しい場合はCLIを使用することになります。
CLIからの拡張問い合わせ
リソースを探すだけなら、OCIコンソールからのフリーテキスト検索や拡張問い合わせがあれば十分ですが、「return句」というOCIコンソール上では使用できない構文が便利なのでCLIについてもご紹介します。
return句についてはOCIドキュメントで下記のように記載されています。
SDKやCLIのユーザーにとって、return句は、クエリによって返された検索結果に含まれる拡張リソース属性を指定するものです。return句を使用すると、検索結果に特定のリソース属性またはすべてのリソース属性を強制的に返すことができ、各リソースの詳細情報を取得することができます。
インスタンスに対してreturn句を使用した問合せを行うと、IPアドレスの情報も取得できます。
ちなみにIPアドレスはインスタンス用のCLIコマンド(oci compute instance getやlist)では取得できません。
CLIからの拡張問い合わせで出力される要素と値についてまとめました。コマンドやJSON出力は本記事の末尾に記載しましたので、実際に使ってみたい方はご覧ください。
- CLI 拡張問い合わせ(return句なし)
要素 | 値 |
---|---|
availability-domain | ztar:AP-TOKYO-1-AD-1 |
compartment-id | ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq |
defined-tags | {} |
display-name | search |
freeform-tags | {} |
identifier | ocid1.instance.oc1.ap-tokyo-1.anxhiljr7swuj4ycqc3oelhc2rynnq3rmqtjv6gcwfpueb3jsal4pms7iz2a |
identity-context | {} |
lifecycle-state | STOPPED |
resource-type | Instance |
search-context | null |
system-tags | {} |
time-created | 2023-04-26T03:22:04.559000+00:00 |
- CLI 拡張問い合わせ(return句あり)
additional-detailsというフィールドが追加され以下の内容をさらに取得することができる。
要素 | 値 |
---|---|
attachedVnics[].compartmentId | ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq |
attachedVnics[].isPrimary | true |
attachedVnics[].privateIp | 192.168.1.7 |
attachedVnics[].publicIp | X.X.X.X (伏字) |
dedicatedVmHostId | null |
imageId | ocid1.image.oc1.ap-tokyo-1.aaaaaaaa4xrnwfsr5t2f3ttvyaezi4bdfbsxprwcmtrkspyhbe6kijkonqsq |
region | ap-tokyo-1 |
shape | VM.Standard.E4.Flex |
timeMaintenanceRebootDue | null |
まとめ
OCIの検索機能を使用すると簡単にリソースを探すことができます。
さらにCLIから使用することで、サーバ一覧やリソース一覧を作りたいときにちょうどいい感じの情報を簡単に得ることができるので、オススメです。
参考
Webサイト
拡張問い合わせ(return句なし)実行例
$oci search resource structured-search --query-text 'query instance resources where compartmentId = "ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq" '
{
"data": {
"items": [
{
"additional-details": {},
"availability-domain": "ztar:AP-TOKYO-1-AD-1",
"compartment-id": "ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq",
"defined-tags": {},
"display-name": "search",
"freeform-tags": {},
"identifier": "ocid1.instance.oc1.ap-tokyo-1.anxhiljr7swuj4ycqc3oelhc2rynnq3rmqtjv6gcwfpueb3jsal4pms7iz2a",
"identity-context": {},
"lifecycle-state": "STOPPED",
"resource-type": "Instance",
"search-context": null,
"system-tags": {},
"time-created": "2023-04-26T03:22:04.559000+00:00"
}
]
}
}
CLI拡張問い合わせ(return句あり)実行例
$ oci search resource structured-search --query-text 'query instance resources return allAdditionalFields where compartmentId = "ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq" '
{
"data": {
"items": [
{
"additional-details": {
"attachedVnics": [
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq",
"isPrimary": true,
"privateIp": "192.168.1.7",
"publicIp": " X.X.X.X"
}
],
"dedicatedVmHostId": null,
"imageId": "ocid1.image.oc1.ap-tokyo-1.aaaaaaaa4xrnwfsr5t2f3ttvyaezi4bdfbsxprwcmtrkspyhbe6kijkonqsq",
"region": "ap-tokyo-1",
"shape": "VM.Standard.E4.Flex",
"timeMaintenanceRebootDue": null
},
"availability-domain": "ztar:AP-TOKYO-1-AD-1",
"compartment-id": "ocid1.compartment.oc1..aaaaaaaaxvxfpb4juxnvimngkckmiomr5fxlgju7yggl2phyci6qp247dzpq",
"defined-tags": {},
"display-name": "search",
"freeform-tags": {},
"identifier": "ocid1.instance.oc1.ap-tokyo-1.anxhiljr7swuj4ycqc3oelhc2rynnq3rmqtjv6gcwfpueb3jsal4pms7iz2a",
"identity-context": {},
"lifecycle-state": "STOPPED",
"resource-type": "Instance",
"search-context": null,
"system-tags": {},
"time-created": "2023-04-26T03:22:04.559000+00:00"
}
]
}
}