Python-Client verwenden

Sie können den Python-Client verwenden, um den IBM Cloud Monitoring-Service zu verwalten. Der Client wird auch als sdcclient bezeichnet.

Diese Anweisungen gelten für Python Version 3.x.

Um Ressourcen, die dem Standardteam zugeordnet sind, zu verwalten, verwenden Sie IAM als Authentifizierungsmethode.

Zum Verwalten von Ressourcen, die einem Team zugeordnet sind, müssen Sie das für das Team aktivierte Monitoring-API-Token verwenden.

Schritt 1. Installieren des Python Clients

Voraussetzungen

Installieren Sie die folgenden Python-Pakete, die Sie benötigen, wenn Sie Python Version 3 oder höher verwenden:

  1. Führen Sie den folgenden Befehl aus, um das request-Paket zu installieren:

    pip3 install requests
    
  2. Führen Sie den folgenden Befehl aus, um das pyyaml-Paket zu installieren:

    python3 -m pip install pyyaml
    

Python-Client mithilfe von pip installieren

Führen Sie über ein Terminal den folgenden Befehl aus:

Die Version des sddclient muss 0.9.x oder höher sein.

# sddclient version must be at least 0.9.0
pip3 install sdcclient

Python-Client über ein GitHub-Repository installieren

Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie einen Ordner, um den Clientcode zu kopieren.

    mkdir python-client && cd python-client
    
  2. Klonen Sie das Repository.

    git clone https://github.com/sysdiglabs/sysdig-sdk-python.git
    
  3. Erstellen Sie ein leeres Python-Script.

    touch script.py
    
  4. Bestätigen Sie, dass python-sdc-client/script.py aufgelistet wird, wenn Sie den Inhalt des Ordners python-client überprüfen.

    ls
    

Schritt 2. Verweisen Sie in Ihrem Python Skript auf den Python Client

Den mit pip installierten Python-Client referenzieren

Sie können auf den Python-Client verweisen, indem Sie die folgende Anweisung zu Ihrem Python-Skript hinzufügen:

from sdcclient import IbmAuthHelper, SdMonitorClient

Den durch Klonen eines GitHub-Repositorys installierten Python-Client referenzieren

Fügen Sie die folgenden Einträge zu Ihrem Python-Script hinzu, um das geklonte GitHub-Paket in Ihr Script zu importieren:

import sys
sys.path.append("python-sdc-client")
from sdcclient import IbmAuthHelper, SdMonitorClient

Schritt 3. Instanziieren Sie den Monitoring Python Client

Option 1. Authentifizieren Sie Ihre Benutzer- oder Dienst-ID mithilfe von IAM

Um die IBM Cloud-IAM-Authentifizierung mit dem Python-Client verwenden zu können, müssen Sie einen Monitoring-Endpunkt, einen API-Schlüssel und die GUID aus Ihrer IBM Cloud Monitoring-Instanz angeben.

Führen Sie über ein Terminal die folgenden Schritte aus:

  1. Rufen Sie die GUID Ihrer IBM Cloud Monitoring-Instanz ab. Führen Sie den folgenden Befehl aus:

    ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
    
  2. Rufen Sie den API-Schlüssel ab. Führen Sie den folgenden Befehl aus, um einen Benutzer-API-Schlüssel zu generieren:

    ibmcloud iam api-key-create KEY_NAME
    
  3. Rufen Sie den Endpunkt für die Region ab, in der die Überwachungsinstanz verfügbar ist.

    Informationen zum Anzeigen der Liste der verfügbaren Endpunkte finden Sie unter Monitoring-Endpunkte.

    Der Endpunkt für eine Instanz, die in der Region "us-south" verfügbar ist, ist beispielsweise folgender: https://us-south.monitoring.cloud.ibm.com

  4. Fügen Sie die folgenden Einträge zu Ihrem Python-Skript hinzu:

    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)
    

    Wo

    <MONITORING_ENDPOINT> muss durch den Endpunkt ersetzt werden, an dem die Überwachungsinstanz verfügbar ist.

    <IAM_APIKEY> muss durch einen gültigen IAM-API-Schlüssel ersetzt werden. Weitere Informationen.

    <GUID> muss durch die GUID der Überwachungsinstanz ersetzt werden, die Sie im vorherigen Schritt erhalten haben.

Sie können jetzt den sdclient verwenden, um Aktionen auszuführen, die mithilfe von IAM authentifiziert werden.

Wenn der Fehler 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token angezeigt wird, überprüfen Sie den API-Schlüssel. Der Wert, den Sie übergeben, ist nicht gültig.

Option 2. Authentifizierung mit dem Monitoring-API-Token

Sie müssen einen Monitoring-Endpunkt und das zugeordnete Monitoring-API-Token des Teams angeben, das mit dem Python-Client verwaltet werden soll.

Führen Sie über ein Terminal die folgenden Schritte aus:

  1. Rufen Sie das Monitoring-API-Token ab.

  2. Rufen Sie den Endpunkt für die Region ab, in der die Überwachungsinstanz verfügbar ist.

    Informationen zum Anzeigen der Liste der verfügbaren Endpunkte finden Sie unter Monitoring-Endpunkte.

    Der Endpunkt für eine Instanz, die in der Region "us-south" verfügbar ist, ist beispielsweise folgender: https://us-south.monitoring.cloud.ibm.com

  3. Fügen Sie die folgenden Einträge zu Ihrem Python-Skript hinzu:

    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)
    

    Wo

    <MONITORING_ENDPOINT> muss durch den Endpunkt ersetzt werden, an dem die Überwachungsinstanz verfügbar ist.

    <MONITOR_TOKEN> muss durch das Monitoring-API-Token ersetzt werden.

Sie können jetzt den sdclient verwenden, um Aktionen auszuführen, die mithilfe von IAM authentifiziert werden.

Beispiel 1. Python skript, das den IAM-API-Schlüssel verwendet

#!/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)

Beispiel 2. Python skript, das ein Monitoring-API-Token verwendet

#!/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)

Referenzen