概要
AWS EC2からPythonを使用してOCIリソースのAPI操作を行います。
今回はOCI上のComputeに対して開始操作を行います。
(トークンベース認証方法から通常のAPI認証に変更しました)
構成
設定手順
-
OCI資格情報取得
コマンドライン(CLI)でOCIを操作する -
OCI Compute OCID取得
OCIコンソールにログインしてCompute>Instanceから対象のInstanceを選択してOCIDを入手します -
Python実行可能なEC2の準備
EC2にPythonをインストールします。 -
ociライブラリ追加
ociライブラリを使用するのでPython実行可能なEC2にpip installコマンドを実行します
pip3 install oci
- oci config,鍵情報の配置
以下のOCI資格情報(config, oci_api_key.pem)をEC2にコピーします。
今回は以下のフォルダに配置しています。
~/.oci/config
[DEFAULT]
user=【UserIDのOCID】
fingerprint=【fingerprint】
tenancy=【テナンシOCID】
region=【リージョン】東京の場合ap-tokyo-1
key_file=/home/ec2-user/.oci/oci_api_key.pem
~/.oci/oci_api_key.pem
oci_api_key.pem
-----BEGIN PRIVATE KEY-----
** 略 **
-----END PRIVATE KEY-----
- Pythonコード
pythonコード.py
import oci
# Create a default config using DEFAULT profile in default location
# Refer to
# https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File
# for more info
config = oci.config.from_file("/home/ec2-user/.oci/config")
# Initialize service client with default config file
core_client = oci.core.ComputeClient(config, service_endpoint='https://iaas.【リージョン】.oraclecloud.com')
# Send the request to service, some parameters are not required, see API
# doc for more info
instance_action_response = core_client.instance_action(
instance_id="【開始するComputeのOCID】",
action="START")
# Get the data from response
print(instance_action_response.data)
実行結果
成功すれば以下のようなレスポンスが返ってきます。
また、OCIコンソールで該当Computeを確認すると開始に成功しています。
$ python3 pythonコード.py
{
略
"display_name": "開始するComputeのインスタンス名",
"id": "開始するComputeのOCID",
略
"lifecycle_state": "STARTING",
略
}