使用 Python 客戶端
您可以使用 Python Client 管理 IBM Cloud Monitoring 服務。 用戶端也稱為 sdcclient。
這些指示適用於 Python 版本 3.x。
若要管理與預設團隊相關聯的資源,請使用 IAM 作為您的驗證方法。
若要管理與團隊相關聯的資源,您必須使用該團隊已啟用的 Monitoring API 令牌。
步驟 1. 安裝 Python 用戶端
必要條件
安裝下列 Python 套件,這些套件是您使用 Python 版本 3 或更新版本時所需要的:
-
執行下列指令以安裝
request套件:pip3 install requests -
執行下列指令以安裝
pyyaml套件:python3 -m pip install pyyaml
使用 pip 安裝 Python 用戶端
從終端機執行下列 comnmnand:
sddclient 版本必須至少為 0.9.x。
# sddclient version must be at least 0.9.0
pip3 install sdcclient
從 GitHub repo 安裝 Python 用戶端
請完成下列步驟:
-
建立資料夾複製用戶端程式碼。
mkdir python-client && cd python-client -
複製儲存庫。
git clone https://github.com/sysdiglabs/sysdig-sdk-python.git -
建立一個空的 Python 指令碼。
touch script.py -
確認
python-sdc-client/script.py已列在驗證資料夾python-client的內容時。ls
步驟 2. 在 Python 指令碼中參考 Python 用戶端
參考使用 pip 安裝的 Python 客戶端
您可以在 Python 腳本中加入以下語句來引用 Python 用戶端:
from sdcclient import IbmAuthHelper, SdMonitorClient
參考透過克隆 GitHub repo 安裝的 Python 客戶端
在 Python 腳本中加入下列項目,將 GitHub 克隆套件匯入腳本:
import sys
sys.path.append("python-sdc-client")
from sdcclient import IbmAuthHelper, SdMonitorClient
步驟 3. 實作 Monitoring Python 用戶端
選項1. 使用 IAM 驗證您的使用者或服務 ID
若要在 Python 用戶端使用 IBM Cloud IAM 驗證,您必須指定 Monitoring 端點、API 金鑰以及您 IBM Cloud Monitoring 範例的 GUID。
從終端機完成下列步驟:
-
取得 IBM Cloud Monitoring 範例的 GUID。 執行下列指令:
ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid' -
取得 API 金鑰。 執行下列指令以產生使用者 API 金鑰:
ibmcloud iam api-key-create KEY_NAME -
取得監控實體所在區域的端點。
若要檢視可用的端點清單,請參閱 Monitoring 端點。
例如,在 us-south 可用的實例的端點如下:
https://us-south.monitoring.cloud.ibm.com -
在 Python 腳本中加入下列項目:
from sdcclient import IbmAuthHelper, SdMonitorClient URL = <MONITORING_ENDPOINT> # For example: URL = 'https://us-south.monitoring.cloud.ibm.com' APIKEY = <IAM_APIKEY> GUID = <GUID> ibm_headers = IbmAuthHelper.get_headers(URL, APIKEY, GUID) sdclient = SdMonitorClient(sdc_url=URL, custom_headers=ibm_headers)其中
<MONITORING_ENDPOINT>必須更換為監控實例可用的端點。<IAM_APIKEY>必須以有效的 IAM API 金鑰取代。 進一步瞭解。<GUID>必須更換為您在上一步中取得的監控實體的 GUID。
現在您可以使用 sdclient 執行將使用 IAM 驗證的動作。
如果您收到錯誤 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token,請檢查 API 金鑰。 您傳送的值無效。
選項 2. 使用監控 API 令牌進行驗證
您必須指定 Monitoring 端點,以及與您要使用 Python 用戶端管理的團隊相關聯的 Monitoring API 令牌。
從終端機完成下列步驟:
-
取得監控實體所在區域的端點。
若要檢視可用的端點清單,請參閱 Monitoring 端點。
例如,在 us-south 可用的實例的端點如下:
https://us-south.monitoring.cloud.ibm.com -
在 Python 腳本中加入下列項目:
from sdcclient import IbmAuthHelper, SdMonitorClient URL = <MONITORING_ENDPOINT> # For example: URL = 'https://us-south.monitoring.cloud.ibm.com' MONITOR_TOKEN = <MONITOR_TOKEN> # For example: MONITOR_TOKEN = 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' sdclient = SdMonitorClient(token=MONITOR_TOKEN,sdc_url=URL)其中
<MONITORING_ENDPOINT>必須更換為監控實例可用的端點。<MONITOR_TOKEN>必須以監控 API 令牌取代。
現在您可以使用 sdclient 執行將使用 IAM 驗證的動作。
樣品 1. Python 使用 IAM API 金鑰的指令碼
#!/usr/bin/env python3
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), '..'))
from sdcclient import IbmAuthHelper, SdMonitorClient
# Parse arguments.
def usage():
print('usage: %s <ENDPOINT_URL> <API_KEY> <INSTANCE_GUID>' % sys.argv[0])
print('ENDPOINT_URL: IBM Cloud endpoint URL (e.g. https://us-south.monitoring.cloud.ibm.com')
print('API_KEY: IBM Cloud IAM API key. This key is used to retrieve an IAM access token.')
print('INSTANCE_GUID: GUID of an IBM Cloud Monitoring.')
sys.exit(1)
if len(sys.argv) != 4:
usage()
URL = sys.argv[1]
APIKEY = sys.argv[2]
GUID = sys.argv[3]
# Instantiate the client
ibm_headers = IbmAuthHelper.get_headers(URL, APIKEY, GUID)
sdclient = SdMonitorClient(sdc_url=URL, custom_headers=ibm_headers)
樣品 2. Python 使用監控 API 令牌的腳本
#!/usr/bin/env python3
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), '..'))
from sdcclient import IbmAuthHelper, SdMonitorClient
# Parse arguments.
def usage():
print('usage: %s <ENDPOINT_URL> <MONITOR_TOKEN> <INSTANCE_GUID>' % sys.argv[0])
print('ENDPOINT_URL: IBM Cloud endpoint URL (e.g. https://us-south.monitoring.cloud.ibm.com')
print('MONITOR_TOKEN: token that is associated to a team.')
sys.exit(1)
if len(sys.argv) != 3:
usage()
URL = sys.argv[1]
MONITOR_TOKEN = sys.argv[2]
# Instantiate the client
sdclient = SdMonitorClient(token=MONITOR_TOKEN,sdc_url=URL)