Todos os produtos
Search
Central de documentação

Database Autonomy Service:Use DAS SDK for Python

Última atualização: Jun 27, 2026

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:

Como funciona

O exemplo deste guia executa as seguintes ações:

  1. Autentica usando credenciais das variáveis de ambiente.

  2. Chama GetInstanceInspections para consultar tarefas de inspeção e pontuação concluídas em um intervalo de tempo especificado.

  3. 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.

  1. Crie um usuário RAM.

    1. Faça login no console RAM, acesse a página Users e clique em Create User.

    2. Defina Logon Name como das-openapi-operator e configure Access Mode como Using permanent AccessKey to access.

    3. Clique em OK. Salve o AccessKey ID e o AccessKey secret exibidos após a criação.

  2. Conceda permissões ao usuário RAM.

    1. Na página Users, localize o usuário RAM e clique em Add Permissions na coluna Actions.

    2. Pesquise por DAS e selecione AliyunHDMReadOnlyAccess.

      Nota

      A 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.

    3. 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>"
Nota

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.

  1. Acesse a página GetInstanceInspections no OpenAPI Explorer.

  2. 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

    MySQL

    StartTime

    1718776527000

    Timestamp UNIX em milissegundos. Defina este valor como o início real do intervalo de consulta.

    EndTime

    1718776827000

    Timestamp 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

    RDS

    PageNo

    1

    PageSize

    10

  3. Na aba SDK Sample Code à direita, selecione Python no parâmetro Languages e clique em Download Project.

  4. 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

Data.List

Array de registros de inspeção. Cada registro contém metadados da instância, dados de diagnóstico e uma pontuação.

Data.List[].Score

Pontuação da inspeção da instância.

Data.List[].State

Estado da tarefa.

Data.List[].TaskType

Tipo da tarefa.

Data.List[].Instance

Detalhes da instância: mecanismo, versão, região, CPU, memória, armazenamento e tipo de rede.

Data.List[].Data

Dados de diagnóstico: contagem de SQL lento, detecção de deadlock, sessões ativas, grandes transações e uso de armazenamento.

Data.PageNo

Número da página atual.

Data.PageSize

Quantidade de registros por página.

Data.Total

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