Utilización del cliente Python
Puede utilizar el cliente Python para gestionar el servicio IBM Cloud Monitoring. El cliente también se conoce como el sdcclient.
Estas instrucciones se aplican a Python versión 3.x.
Para gestionar recursos que están asociados al equipo predeterminado, utilice IAM como método de autenticación.
Para gestionar recursos que están asociados a un equipo, debe utilizar la señal de API de supervisión que está activa para el equipo.
Paso 1. Instalación del cliente Python
Requisitos previos
Instale los siguientes paquetes de Python que necesite cuando utilice Python versión 3 o posterior:
-
Ejecute el siguiente mandato para instalar el paquete
request
:pip3 install requests
-
Ejecute el siguiente mandato para instalar el paquete
pyyaml
:python3 -m pip install pyyaml
Instalación del cliente Python utilizando pip
Desde un terminal, ejecute el mandato siguiente:
La versión del sddclient debe ser como mínimo la 0.9.x.
# sddclient version must be at least 0.9.0
pip3 install sdcclient
Instalación del cliente Python desde un repositorio de GitHub
Complete los pasossiguientes:
-
Cree una carpeta para copiar el código del cliente.
mkdir python-client && cd python-client
-
Clone el repositorio.
git clone https://github.com/sysdiglabs/sysdig-sdk-python.git
-
Cree un script Python vacío.
touch script.py
-
Confirme que
python-sdc-client/script.py
se lista cuando verifica el contenido de la carpetapython-client
.ls
Paso 2. Haga referencia al cliente Python en su script Python
Haga referencia al cliente Python que se ha instalado utilizando pip
Puede hacer referencia al cliente Python añadiendo la siguiente sentencia a su script Python:
from sdcclient import IbmAuthHelper, SdMonitorClient
Haga referencia al cliente Python que se ha instalado clonando un repositorio de GitHub
Añada las siguientes entradas al script Python para importar el paquete clonado de GitHub en el script:
import sys
sys.path.append("python-sdc-client")
from sdcclient import IbmAuthHelper, SdMonitorClient
Paso 3. Instanciar el cliente Monitoring Python
Opción 1. Autentique su ID de usuario o servicio mediante IAM
Para utilizar la autenticación IBM Cloud IAM con el cliente Python, debe especificar un punto final de Monitoring, una clave de API y el GUID desde la instancia de IBM Cloud Monitoring.
Complete los pasos siguientes en un terminal:
-
Obtenga el GUID de la instancia de IBM Cloud Monitoring. Ejecute el mandato siguiente:
ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
-
Obtenga la clave de API. Ejecute el siguiente mandato para generar una clave de API de usuario:
ibmcloud iam api-key-create KEY_NAME
-
Obtenga el punto final de la región donde está disponible la instancia de supervisión.
Para ver la lista de Puntos finales disponibles, consulte Puntos finales de Monitoring.
Por ejemplo, el punto final de una instancia que está disponible en us-south es el siguiente:
https://us-south.monitoring.cloud.ibm.com
-
Añada las siguientes entradas al script 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)
Donde
<MONITORING_ENDPOINT>
debe sustituirse por el punto final en el que está disponible la instancia de supervisión.<IAM_APIKEY>
debe sustituirse por una clave de API de IAM válida. Más información.<GUID>
debe sustituirse por el GUID de la instancia de monitorización que se obtiene en el paso anterior.
Ahora puede utilizar el sdclient para realizar acciones que se autenticarán utilizando IAM.
Si obtiene el error 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token
, compruebe la clave de API. El valor que está pasando no es válido.
Opción 2. Autenticación mediante el token de la API de supervisión
Debe especificar un punto final de Monitoring y la señal de API de supervisión que está asociada al equipo que desea gestionar con el cliente Python.
Complete los pasos siguientes en un terminal:
-
Obtenga el punto final de la región donde está disponible la instancia de supervisión.
Para ver la lista de Puntos finales disponibles, consulte Puntos finales de Monitoring.
Por ejemplo, el punto final de una instancia que está disponible en us-south es el siguiente:
https://us-south.monitoring.cloud.ibm.com
-
Añada las siguientes entradas al script 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)
Donde
<MONITORING_ENDPOINT>
debe sustituirse por el punto final en el que está disponible la instancia de supervisión.<MONITOR_TOKEN>
debe sustituirse por el token de la API de monitorización.
Ahora puede utilizar el sdclient para realizar acciones que se autenticarán utilizando IAM.
Muestra 1. Python script que utiliza la clave API de IAM
#!/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)
Muestra 2. Python que utiliza un token de la API de supervisión
#!/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)