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:
-
Execute o comando a seguir para instalar o pacote
request
:pip3 install requests
-
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:
-
Faça uma pasta para copiar o código do cliente.
mkdir python-client && cd python-client
-
Clone o repositório.
git clone https://github.com/sysdiglabs/sysdig-sdk-python.git
-
Crie um script Python vazio.
touch script.py
-
Confirme
python-sdc-client/script.py
listado quando você verificar o conteúdo da pastapython-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:
-
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'
-
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
-
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
-
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:
-
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
-
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)