Utilizzo del client Python

È possibile utilizzare il client Python per gestire il servizio IBM Cloud Monitoring. Il client è noto anche come sdcclient.

Queste istruzioni si applicano alla versione Python 3.x.

Per gestire le risorse associate al team predefinito, utilizzare IAM come metodo di autenticazione.

Per gestire le risorse associate a un team, è necessario utilizzare il token API di monitoraggio attivo per il team.

Passo 1. Installazione del client Python

Prerequisiti

Installare i seguenti pacchetti di Python necessari quando si usa Python versione 3 o successiva:

  1. Eseguite il seguente comando per installare il pacchetto request :

    pip3 install requests
    
  2. Eseguite il seguente comando per installare il pacchetto pyyaml :

    python3 -m pip install pyyaml
    

Installare il client Python utilizzando pip

Da un terminale, eseguire il seguente comando comnmnand:

La versione di sddclient deve essere almeno 0.9.x.

# sddclient version must be at least 0.9.0
pip3 install sdcclient

Installazione del client Python da un repo GitHub

Completa i seguenti passi:

  1. Creare una cartella per copiare il codice del client.

    mkdir python-client && cd python-client
    
  2. Clona il repository.

    git clone https://github.com/sysdiglabs/sysdig-sdk-python.git
    
  3. Creare uno script Python vuoto.

    touch script.py
    
  4. Confermare che python-sdc-client/script.py è elencato quando si verifica il contenuto della cartella python-client.

    ls
    

Passo 2. Riferirsi al client Python nello script Python

Fare riferimento al client Python che è stato installato utilizzando pip

È possibile fare riferimento al client Python aggiungendo la seguente istruzione allo script Python:

from sdcclient import IbmAuthHelper, SdMonitorClient

Riferimento al client Python che è stato installato clonando un repo GitHub

Aggiungete le seguenti voci allo script Python per importare il pacchetto clonato GitHub nel vostro script:

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

Passo 3. Istanziare il client Monitoring Python

Opzione 1. Autenticare l'ID dell'utente o del servizio utilizzando IAM

Per utilizzare l'autenticazione IAM di IBM Cloud con il client Python, è necessario specificare un endpoint Monitoring, una chiave API e il GUID dell'istanza IBM Cloud Monitoring.

Completate i seguenti passaggi da un terminale:

  1. Ottenere il GUID dell'istanza di IBM Cloud Monitoring. Esegui il seguente comando:

    ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
    
  2. Ottieni la chiave API. Eseguire il seguente comando per generare una chiave API utente:

    ibmcloud iam api-key-create KEY_NAME
    
  3. Ottiene l'endpoint della regione in cui è disponibile l'istanza di monitoraggio.

    Per vedere l'elenco degli endpoint disponibili, vedere Monitoring endpoint.

    Ad esempio, l'endpoint per un'istanza disponibile in us-south è il seguente: https://us-south.monitoring.cloud.ibm.com

  4. Aggiungete le seguenti voci allo 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)
    

    Dove

    <MONITORING_ENDPOINT> deve essere sostituito con l'endpoint in cui è disponibile l'istanza di monitoraggio.

    <IAM_APIKEY> deve essere sostituito con una chiave API IAM valida. Ulteriori informazioni.

    <GUID> deve essere sostituito con il GUID dell'istanza di monitoraggio ottenuto nel passaggio precedente.

È ora possibile utilizzare sdclient per eseguire azioni che saranno autenticate tramite IAM.

Se si ottiene l'errore 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token, controllare la chiave API. Il valore passato non è valido.

Opzione 2. Autenticatevi utilizzando il token API di monitoraggio

È necessario specificare un endpoint Monitoring e il token API di monitoraggio associato al team che si desidera gestire con il client Python.

Completate i seguenti passaggi da un terminale:

  1. Ottenere il token API di monitoraggio.

  2. Ottiene l'endpoint della regione in cui è disponibile l'istanza di monitoraggio.

    Per vedere l'elenco degli endpoint disponibili, vedere Monitoring endpoint.

    Ad esempio, l'endpoint per un'istanza disponibile in us-south è il seguente: https://us-south.monitoring.cloud.ibm.com

  3. Aggiungete le seguenti voci allo 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)
    

    Dove

    <MONITORING_ENDPOINT> deve essere sostituito con l'endpoint in cui è disponibile l'istanza di monitoraggio.

    <MONITOR_TOKEN> deve essere sostituito con il token API di monitoraggio.

È ora possibile utilizzare sdclient per eseguire azioni che saranno autenticate tramite IAM.

Campione 1. Python script che utilizza la chiave 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)

Campione 2. Python che utilizza un token API di Monitoring

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

Riferimenti