Este guia demonstra como usar o Database Autonomy Service (DAS) SDK para Python para chamar a operação de API GetInstanceInspections, que recupera resultados de inspeção e pontuação de uma instância de banco de dados.
Pré-requisitos
Antes de começar, verifique se você tem:
O Python 3 instalado. Execute
python --versionpara verificar.Um usuário RAM com permissões do DAS. Siga as etapas em Configurar um usuário RAM caso ainda não tenha feito isso.
Seu AccessKey ID e AccessKey secret armazenados como variáveis de ambiente. Siga as etapas em Configurar variáveis de ambiente.
Como funciona
O exemplo deste guia executa as seguintes ações:
Autentica usando credenciais das variáveis de ambiente.
Chama
GetInstanceInspectionspara consultar tarefas de inspeção e pontuação concluídas em um intervalo de tempo especificado.Retorna uma lista paginada de resultados de inspeção, incluindo pontuações, detalhes da instância e dados de diagnóstico.
Para obter a lista completa de operações de API do DAS, consulte a referência da API do DAS. Para SDKs em outras linguagens, visualize o DAS SDK.
Configurar um usuário RAM
Ignore esta seção se você já tiver um usuário do Resource Access Management (RAM) com permissões do DAS.
-
Crie um usuário RAM.
Faça login no console RAM, acesse a página Users e clique em Create User.
Defina Logon Name como
das-openapi-operatore configure Access Mode como Using permanent AccessKey to access.Clique em OK. Salve o AccessKey ID e o AccessKey secret exibidos após a criação.
-
Conceda permissões ao usuário RAM.
Na página Users, localize o usuário RAM e clique em Add Permissions na coluna Actions.
-
Pesquise por
DASe selecione AliyunHDMReadOnlyAccess.NotaA política AliyunHDMReadOnlyAccess concede acesso somente leitura ao DAS. Para acesso completo de leitura e escrita, selecione AliyunHDMFullAccess. Para criar uma política personalizada com permissões específicas, consulte Criar políticas personalizadas.
Clique em Grant permissions.
Configurar variáveis de ambiente
Armazene suas credenciais como variáveis de ambiente para evitar codificar valores sensíveis diretamente no código.
Linux ou macOS:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
Windows (Prompt de Comando):
set ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
Windows (PowerShell):
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "<ACCESS_KEY_ID>"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "<ACCESS_KEY_SECRET>"
Os comandos set e $env: têm escopo de sessão: as variáveis são perdidas ao fechar o terminal ou reiniciar o Windows. Para definir variáveis de ambiente persistentes no Windows, use a caixa de diálogo Propriedades do Sistema (Control Panel > System > Advanced system settings > Environment Variables) ou crie um arquivo que defina essas variáveis e reinicie o Windows.
Substitua <ACCESS_KEY_ID> e <ACCESS_KEY_SECRET> pelos valores salvos ao criar o usuário RAM.
Instalar o SDK
Recomendamos usar um ambiente virtual para evitar conflitos de dependências com outros pacotes no sistema:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
Em seguida, instale o DAS Python SDK:
pip install alibabacloud_das20200116==2.4.2
Chamar a API
Obter o código de exemplo
O OpenAPI Explorer gera automaticamente o código de exemplo com base nos parâmetros configurados.
Acesse a página GetInstanceInspections no OpenAPI Explorer.
-
Na aba Parameters, defina os seguintes parâmetros. Este exemplo consulta inspeções em uma instância ApsaraDB RDS for MySQL.
Parâmetro
Valor de exemplo
Observações
Engine
MySQLStartTime
1718776527000Timestamp UNIX em milissegundos. Defina este valor como o início real do intervalo de consulta.
EndTime
1718776827000Timestamp UNIX em milissegundos. Defina este valor como o fim real do intervalo de consulta. Se nenhuma inspeção for concluída dentro do intervalo, execute uma inspeção manualmente e tente novamente.
InstanceArea
RDSPageNo
1PageSize
10 Na aba SDK Sample Code à direita, selecione Python no parâmetro Languages e clique em Download Project.
Extraia o pacote baixado e acesse o diretório
alibabacloud_sample.
Executar o código de exemplo
python sample.py
Entender a resposta
Uma chamada bem-sucedida retorna o código de status HTTP 200. O corpo da resposta tem a seguinte estrutura:
|
Campo |
Descrição |
|
|
Array de registros de inspeção. Cada registro contém metadados da instância, dados de diagnóstico e uma pontuação. |
|
|
Pontuação da inspeção da instância. |
|
|
Estado da tarefa. |
|
|
Tipo da tarefa. |
|
|
Detalhes da instância: mecanismo, versão, região, CPU, memória, armazenamento e tipo de rede. |
|
|
Dados de diagnóstico: contagem de SQL lento, detecção de deadlock, sessões ativas, grandes transações e uso de armazenamento. |
|
|
Número da página atual. |
|
|
Quantidade de registros por página. |
|
|
Total de registros correspondentes. |
Resposta de exemplo:
{
"headers": {
"date": "Wed, 19 Jun 2024 06:24:10 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "1428",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"vary": "Accept-Encoding",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "B576DACC-D08A-5058-8843-E613CBF474CF",
"x-acs-trace-id": "2fb5b5b76565ce67233288b9369f6d96",
"etag": "1rcNeDQg43APurk7PohefuQ8"
},
"statusCode": 200,
"body": {
"Code": 200,
"Data": {
"List": [
{
"AutoFunction": {
"AutoIndex": 1,
"AutoLimitedSql": 0,
"AutoResourceOptimize": 2,
"AutoScale": 0,
"EventSubscription": 0
},
"Data": {
"hasDeadLock": false,
"slowSqlCount": 0,
"exceptionTableMap": {},
"spaceItem": {
"valid": true,
"current": 0.16416015625,
"avg": 0.16416015625,
"min": 0.16416015625,
"max": 0.16416015625
},
"maxIops": 3100,
"bigTransactionCount": 0,
"cpu": 2,
"isRds": true,
"storage": 20,
"lastHourRate": 0.0,
"lastDayCount": 0,
"lastHourCount": 0,
"slowSqlList": [],
"lastDayRate": 0.0,
"activeSessions": [],
"enable": false,
"bigTransactionList": [],
"bigSessionList": [
{
"User": "system user",
"Command": "Query",
"State": "Replica has read all relay log; waiting for more updates",
"active": false,
"Host": "",
"Time": 24,
"Id": 61,
"Info": "",
"db": ""
}
],
"tableStats": [],
"bigSessionCount": 1,
"spaceUsage": 0.16416015625,
"availableDays": 76
},
"EnableDasPro": 0,
"EndTime": 1718726400000,
"GmtCreate": 1718776692000,
"Instance": {
"AccountId": "1648821913965368",
"Category": "standard",
"Cpu": "2",
"Engine": "MySQL",
"EngineVersion": "8.0",
"InstanceArea": "RDS",
"InstanceClass": "mysql.n2m.medium.2c",
"InstanceId": "rm-bp1s6jtqtr41m****",
"Memory": 4096,
"NetworkType": "VPC",
"Region": "cn-hangzhou",
"Storage": 20,
"Uuid": "hdm_6d00b701adcb484d5fa4d2800dc0****",
"VpcId": "vpc-bp1ov7as4yvz4kxei****"
},
"Score": 100,
"StartTime": 1718640000000,
"State": 2,
"TaskType": 1
}
],
"PageNo": 1,
"PageSize": 10,
"Total": 1
},
"Message": "Successful",
"RequestId": "B576DACC-D08A-5058-8843-E613CBF474CF",
"Success": true
}
}
Próximos passos
Inspeção e pontuação — Saiba como visualizar e interpretar resultados de inspeção no console do DAS.
Referência da API do DAS — Explore todas as operações de API disponíveis.
DAS SDK — Baixe SDKs para Java, Go, Node.js e outras linguagens.