IBM Cloud Docs
Usando o cliente Python

Usando o cliente Python

É possível usar o Cliente Python para gerenciar o serviço IBM Cloud Monitoring. O cliente também é conhecido como o sdcclient.

Essas instruções se aplicam ao Python versão 3.x.

Para gerenciar recursos que estão associados à equipe padrão, use o IAM como seu método de autenticação.

Para gerenciar recursos que estão associados a uma equipe, deve-se usar o token da API de Monitoramento que está ativo para a equipe.

Etapa 1. Instalação do cliente Python

Pré-requisitos

Instale os seguintes pacotes Python necessários ao usar o Python versão 3 ou posterior:

  1. Execute o comando a seguir para instalar o pacote request:

    pip3 install requests
    
  2. Execute o comando a seguir para instalar o pacote pyyaml:

    python3 -m pip install pyyaml
    

Instalando o cliente Python usando pip

Em um terminal, execute o comando a seguir:

A versão sddclient deve ser pelo menos 0.9.x.

# sddclient version must be at least 0.9.0
pip3 install sdcclient

Instalando o cliente Python por meio de um repositório GitHub

Conclua as etapas a seguir:

  1. Faça uma pasta para copiar o código do cliente.

    mkdir python-client && cd python-client
    
  2. Clone o repositório.

    git clone https://github.com/sysdiglabs/sysdig-sdk-python.git
    
  3. Crie um script Python vazio.

    touch script.py
    
  4. Confirme python-sdc-client/script.py listado quando você verificar o conteúdo da pasta python-client.

    ls
    

Etapa 2. Faça referência ao cliente Python em seu script Python

Referencie o cliente Python que está instalado usando pip

É possível referenciar o cliente Python incluindo a instrução a seguir em seu script Python:

from sdcclient import IbmAuthHelper, SdMonitorClient

Referencie o cliente Python instalado clonando um repositório GitHub

Adicione as entradas a seguir no seu script Python para importar o pacote clonado GitHub em seu script:

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

Etapa 3. Instanciar o cliente Monitoring Python

Opção 1 Autentique seu usuário ou ID de serviço usando o IAM

Para usar a autenticação do IBM Cloud IAM com o cliente Python, deve-se especificar um terminal do Monitoring, uma chave de API e o GUID da instância do IBM Cloud Monitoring.

Conclua as etapas a seguir por meio de um terminal:

  1. Obtenha o GUID de sua instância do IBM Cloud Monitoring. Execute o comando a seguir:

    ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
    
  2. Obtenha a chave de API. Execute o comando a seguir para gerar uma chave de API do usuário:

    ibmcloud iam api-key-create KEY_NAME
    
  3. Obtenha o terminal para a região na qual a instância de monitoramento está disponível.

    Para ver a lista de terminais que estão disponíveis, consulte Terminais do Monitoring.

    Por exemplo, o terminal para uma instância que está disponível em us-south é o seguinte: https://us-south.monitoring.cloud.ibm.com

  4. Inclua as entradas a seguir em seu 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)
    

    em que

    <MONITORING_ENDPOINT> deve ser substituído pelo endpoint em que a instância de monitoramento está disponível.

    <IAM_APIKEY> deve ser substituído por uma chave de API IAM válida. Saiba mais.

    <GUID> deve ser substituído pelo GUID da instância de monitoramento que você obteve na etapa anterior.

Agora é possível usar o sdclient para executar ações que serão autenticadas usando o IAM.

Se você obtiver o erro 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token, verifique a chave de API. O valor que você está transmitindo não é válido.

Opção 2. Autenticar usando o token da API de monitoramento

Deve-se especificar um terminal do Monitoring e o token da API de Monitoramento que está associado à equipe que você deseja gerenciar com o cliente Python.

Conclua as etapas a seguir por meio de um terminal:

  1. Obtenha o token da API de Monitoramento.

  2. Obtenha o terminal para a região na qual a instância de monitoramento está disponível.

    Para ver a lista de terminais que estão disponíveis, consulte Terminais do Monitoring.

    Por exemplo, o terminal para uma instância que está disponível em us-south é o seguinte: https://us-south.monitoring.cloud.ibm.com

  3. Inclua as entradas a seguir em seu 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)
    

    em que

    <MONITORING_ENDPOINT> deve ser substituído pelo endpoint em que a instância de monitoramento está disponível.

    <MONITOR_TOKEN> deve ser substituído pelo token da API de monitoramento.

Agora é possível usar o sdclient para executar ações que serão autenticadas usando o IAM.

Amostra 1. Python script que usa a chave de API do 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)

Amostra 2. Python script que usa um token da API de monitoramento

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

Referências