LoginSignup
0
0

AWS環境からOCIリソースのAPI操作

Last updated at Posted at 2023-09-22

概要

AWS EC2からPythonを使用してOCIリソースのAPI操作を行います。
今回はOCI上のComputeに対して開始操作を行います。

(トークンベース認証方法から通常のAPI認証に変更しました)

構成

image.png

設定手順

  • 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=【UserIDOCIDfingerprint=【fingerprinttenancy=【テナンシOCIDregion=【リージョン】東京の場合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",
  略
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0