OCI Console Cloud Shellから実行するPythonスクリプトの書き方 (2020/04/15)

OCI Console Cloud Shellから実行するPythonスクリプトの書き方 (2020/04/15)

https://medium.com/oracledevs/writing-python-scripts-to-run-from-the-oci-console-cloud-shell-a0be1091384c

投稿者:Stephen Cross


この記事は、Oracle Cloud Infrastructure のすべてのインスタンスとその IP アドレスを一覧表示する方法を尋ねる Reddit の質問に部分的に触発されたものです。


これにアプローチする 1 つの方法は、OCI Python-SDK でシンプルな Python スクリプトを使用することですが、私は、OCI コンソールから Cloud Shell で直接これを実行する方法を見つけ、スクリプトの実行に必要な追加設定を最小限に抑えたいと思いました。


OCI コンソールから Cloud Shell を起動すると、OCI CLI や Python SDK を含む多くの一般的なツールやユーティリティがプリインストールされた端末環境が提供されます。


Cloud Shellで実行する Python スクリプトを書くとき、シェルの既存の認証を利用することができ、外部環境からスクリプトを実行するときに通常必要な個別の API キーを手動で構成するステップを回避することができます。これを行うには、シェル内で既存のインスタンス原理委任トークンをロードして、APIリクエストサイナーを作成します。



この署名は、例えば検索クライアントを作成するために、通常の構成設定の代わりに空のディクショナリを渡して、認証クライアントを作成するために使用されます。



この検索クライアントで、現在のリージョンにあるすべてのインスタンスを検索できるようになりました。


ヒント:デフォルトのホームリージョン以外のリージョンを対象にする必要がある場合は、 config={"region": "ca-toronto-1"} と設定することができます。



インスタンスに関する追加の詳細情報を照会し、IPアドレスを取得するために、コンピュートとネットワークリソース用の2つのAPIクライアントが追加で必要です。



最後に、各インスタンスのIPアドレスを取得するために、そのインスタンスのすべてのvnicアタッチメントを照会し、各vnicについて、そのパブリックおよびプライベートIPアドレスを出力することができます。



以下は、Cloud Shellターミナルウィンドウの list-instance-ips.py ファイルにコピーできる完全なスクリプトです。



そして、このスクリプトを実行した例です。現在、私の無料アカウントでは1つのインスタンスしか起動していないため、出力は特に興味深いものではありませんが、アイデアを得ることができます。




その他の情報



注意 - Free Tier のユーザーは、アカウントに含まれるサービスに変更が生じる可能性があります。


コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)