API経由で利用できる機能 準備編
あまり知られていないですがTetrationはAPI経由でも操作可能で、WebGUIでできることはほぼ全てAPI経由でもできるようになっています。数が多いですので今後数回に分けてAPI経由で利用できる機能をご紹介していきたいと思います。
今回はOpenAPIを利用する上で必要となる準備をご紹介します。OpenAPIを利用するにはまずAPIコールに必要となるkeyとsecretの生成が必要です。これはWebGUI上で簡単に生成することができます。次にRESTのリクエストをjsonフォーマットで簡単に送ることができるPython sdk「Tetration API sdk」をインストールします。
pip install tetpyclient
このようにpipで簡単にインストールできます。以上で準備は終了です。とても簡単ですよね!
では実際にAPIコールを試してみましょう。Tetration OpenAPIは機能毎にAPIコールするエンドポイントが分かれています。今回はまず「application」の一覧を得られるAPIコールを試してみます。
------------------------------------------------------------------------------- from tetpyclient import RestClient import json API_ENDPOINT="https://{cluster's IP address or FQDN}" rc = RestClient(API_ENDPOINT,credentials_file='credentials.json', verify=False) resp = rc.get('/applications') app = resp.json() -------------------------------------------------------------------------------
API_ENDPOINTでAPIコールの宛先を指定します。WebGUIと同じ宛先です。
予め生成したAPI keyとAPI secretはcredentialファイルとして任意のパスに置き、credentials_fileとして指定します。
applicationの一覧を得られるAPIコールのパスは’/applications’ですのでこれをgetしてレスポンスを得ます。得られたデータ’app’をデコードして一覧表示すると以下のような出力になります。
これは自身の権限で参照可能な範囲のapplicationの一覧データです。このAPIコールで得られるデータで重要なことはapplicationの名前の他にid、adm_versionといった付随データを得られる点です。
今後のAPI関連のブログでも触れますが、API経由での操作はapplication, scope, filter, clusterなど多くの要素において全てid番号を元に指定する必要があり、APIコールの結果得たデータから’id’といった任意のkeyをparseしvalueを抽出することは今後どのようなオペレーションを行う上でも必須の要件となります。難しく聞こえるかもしれませんが、データ構造さえ分かってしまえばあとは簡単なPythonの知識で実行可能な操作です。ぜひ皆さんも一度API経由での操作に挑戦してみてください!