Utilisation du client Python
Vous pouvez utiliser le client Python pour gérer le service IBM Cloud Monitoring. Ce client est également appelé sdcclient.
Ces instructions s'appliquent à Python version 3.x.
Pour gérer les ressources associées à l'équipe par défaut, utilisez IAM comme méthode d'authentification.
Pour gérer les ressources associées à une équipe, vous devez utiliser le jeton d'API Monitoring actif pour l'équipe.
Étape 1. Installation du client Python
Prérequis
Installez les packages Python suivants dont vous avez besoin lorsque vous utilisez Python version 3 ou ultérieure :
-
Exécutez la commande suivante pour installer le package
request:pip3 install requests -
Exécutez la commande suivante pour installer le package
pyyaml:python3 -m pip install pyyaml
Installation du client Python à l'aide de pip
A partir d'un terminal, exécutez la commande suivante :
La version de sddclient doit être au minimum 0.9.x.
# sddclient version must be at least 0.9.0
pip3 install sdcclient
Installation du client Python à partir d'un référentiel GitHub
Procédez comme suit :
-
Créez un dossier pour copier le code client.
mkdir python-client && cd python-client -
Clonez le référentiel.
git clone https://github.com/sysdiglabs/sysdig-sdk-python.git -
Créez un script Python vide.
touch script.py -
Vérifiez que
python-sdc-client/script.pyest répertorié lorsque vous vérifiez le contenu du dossierpython-client.ls
Étape 2. Faites référence au client Python dans votre script Python
Référencement du client Python installé à l'aide de pip
Vous pouvez référencer le client Python en ajoutant l'instruction suivante dans votre script Python :
from sdcclient import IbmAuthHelper, SdMonitorClient
Référencement du client Python installé en clonant un référentiel GitHub
Ajoutez les entrées suivantes à votre script Python pour importer le package GitHub cloné dans votre script :
import sys
sys.path.append("python-sdc-client")
from sdcclient import IbmAuthHelper, SdMonitorClient
Étape 3. Instanciation du client Monitoring Python
Option 1. Authentifiez votre ID d'utilisateur ou de service en utilisant IAM
Pour utiliser l'authentification IAM d'IBM Cloud avec le client Python, vous devez spécifier un noeud final Monitoring, une clé d'API et l'identificateur global unique de votre instance IBM Cloud Monitoring.
Effectuez la procédure suivante à partir d'un terminal :
-
Procurez-vous l'identificateur global unique de votre instance IBM Cloud Monitoring. Exécutez la commande suivante :
ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid' -
Procurez-vous la clé d'API. Exécutez la commande suivante pour générer une clé d'API utilisateur :
ibmcloud iam api-key-create KEY_NAME -
Procurez-vous le noeud final de la région dans laquelle l'instance de surveillance est disponible.
Pour afficher la liste des noeuds finaux disponibles, voir MonitoringNoeuds finaux.
Par exemple, le noeud final d'une instance disponible dans la région us-south est le suivant :
https://us-south.monitoring.cloud.ibm.com -
Ajoutez les entrées suivantes à votre 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)Où
<MONITORING_ENDPOINT>doit être remplacé par le point de terminaison où l'instance de surveillance est disponible.<IAM_APIKEY>doit être remplacée par une clé API IAM valide. En savoir plus.<GUID>doit être remplacé par le GUID de l'instance de surveillance que vous avez obtenu à l'étape précédente.
Vous pouvez désormais utiliser sdclient pour effectuer des actions qui seront authentifiées à l'aide d'IAM.
Si l'erreur 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token apparaît, vérifiez la clé d'API. La valeur que vous transmettez n'est pas valide.
Option 2. S'authentifier en utilisant le jeton de l'API de surveillance
Vous devez spécifier un noeud final Monitoring et le jeton d'API Monitoring associé à l'équipe que vous souhaitez gérer avec le client Python.
Effectuez la procédure suivante à partir d'un terminal :
-
Procurez-vous le noeud final de la région dans laquelle l'instance de surveillance est disponible.
Pour afficher la liste des noeuds finaux disponibles, voir MonitoringNoeuds finaux.
Par exemple, le noeud final d'une instance disponible dans la région us-south est le suivant :
https://us-south.monitoring.cloud.ibm.com -
Ajoutez les entrées suivantes à votre 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)Où
<MONITORING_ENDPOINT>doit être remplacé par le point de terminaison où l'instance de surveillance est disponible.<MONITOR_TOKEN>doit être remplacé par le jeton de l'API de surveillance.
Vous pouvez désormais utiliser sdclient pour effectuer des actions qui seront authentifiées à l'aide d'IAM.
Échantillon 1. Python script qui utilise la clé API 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)
Exemple 2. Python script qui utilise un jeton API de surveillance
#!/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)