Skip to main content
NetApp Backup and Recovery
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Automatiza la copia de seguridad y la recuperación de NetApp con las API de REST

Colaboradores netapp-mwallis

Usa la API de REST de NetApp Backup and Recovery para automatizar las tareas de backup y restauración disponibles en la interfaz de usuario web.

NetApp Backup and Recovery define diez categorías de endpoints:

  • backup - gestiona las operaciones de backup de los recursos en la nube y locales, y recupera los detalles de los datos de backup

  • catalog - gestiona búsquedas en el catálogo indexado de archivos a partir de una consulta (Search & Restore)

  • cloud- recupera información sobre varios recursos de proveedores de nube desde la NetApp Console

  • job - gestiona las entradas de detalles de los trabajos en la base de datos de la NetApp Console

  • license: recupera el estado de la licencia del sistema desde la NetApp Console

  • ransomware scan- inicia un análisis de ransomware en un archivo de respaldo específico

  • restore- le permite realizar operaciones de restauración a nivel de volumen, archivo y carpeta

  • sfr- recupera archivos de un archivo de respaldo para operaciones de restauración a nivel de archivo único (Explorar y restaurar)

  • storagegrid - obtiene información sobre un servidor StorageGRID y te permite detectar un servidor StorageGRID

  • system - gestiona las políticas de backup y configura el almacén de objetos de destino asociado a un sistema

Referencia de API

La documentación para cada API de NetApp Backup and Recovery está disponible en "Automatización de la NetApp Console para NetApp Backup and Recovery" .

Empezando

Para empezar a utilizar las API de NetApp Backup and Recovery, debes obtener un token de usuario, tu ID de cuenta de NetApp Console y el ID del agente de Console.

Cuando realices llamadas a la API, incluye el token de usuario en el encabezado Authorization y el ID del agente de la Console en el encabezado x-agent-id. Incluye el ID de la cuenta de NetApp Console en las solicitudes a la API.

Nota Si utilizas una cuenta de servicio, utiliza el token de acceso del servicio en lugar de un token de usuario. El valor de client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) es fijo y no se puede cambiar. En este caso, sigue las instrucciones aquí: "Crear un token de acceso al servicio".
Pasos
  1. Consigue un token de usuario en el sitio web de la NetApp Console.

    Genera el token de actualización desde el siguiente enlace: https://services.cloud.netapp.com/refresh-token/. El token de actualización es una cadena alfanumérica que usas para generar un token de usuario.

    curl --location --request POST 'https://netapp-cloud-account.auth0.com/oauth/token?=' \
    --header 'Content-Type: application/json' \
    -d '{
        "grant_type": "refresh_token",
        "refresh_token": "JxaVHn9cGkX92aPVCkhat3zxxxxxwsC9qMl_pLHkZtsVA",
        "client_id": "Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC"
    }'
    Nota El token de usuario del sitio web de NetApp Console caduca. La respuesta de la API incluye un campo expires_in que indica cuándo caduca el token. Para actualizar el token, vuelve a llamar a esta API.
  2. Obtenga su ID de cuenta de NetApp Console .

    GET 'https://api.bluexp.netapp.com/tenancy/account' -H 'authority: api.bluexp.netapp.com'
    Header:
    -H 'accept: application/json'
    -H 'accept-language: en-GB,en;q=0.9'
    -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR

    Esta API devuelve una respuesta como la siguiente. Obtén el ID de la cuenta de [0].[accountPublicId].

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. Obtén el valor del encabezado x-agent-id , que contiene el ID del agente de Console.

    GET 'https://api.services.cloud.netapp.com/occm/list-occms/account-OOnAR4ZS?excludeStandalone=true&source=saas' \
    Header:
      -H 'authority: api.services.cloud.netapp.com' \
      -H 'accept: application/json' \
      -H 'accept-language: en-GB,en;q=0.9' \
      -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5…………

    Recupera el ID del agente de la respuesta analizando occm.[0].[agent].[agentId].

Ejemplo de uso de las API

El siguiente ejemplo muestra una llamada a la API que activa NetApp Backup and Recovery en un sistema con una nueva política. La política tiene etiquetas diarias, horarias y semanales, y archiva después de 180 días en la región East US 2 de Azure. Esta solicitud habilita el backup en el sistema, pero no realiza backup de ningún volumen.

Solicitud de API

Verá que usamos el ID de cuenta de la NetApp Console account-DpTFcxN3 , ID del agente de la consola iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , y token de usuario Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g en este comando.

curl --location --request POST 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v3/backup/working-environment/VsaWorkingEnvironment-99hPYEgk' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g' \
--data-raw '{
    "provider":"AZURE",
    "backup-policy": {
      "archive-after-days": 180,
      "rule": [
        {
          "label": "hourly",
          "retention": "2"
        },
        {
          "label": "daily",
          "retention": "30"
        },
        {
          "label": "weekly",
          "retention": "52"
        }
      ]
    },
    "ip-space": "Default",
    "region": "eastus2",
    "azure": {
      "resource-group": "rn-test-backup-rg",
      "subscription": "3beb4dd0-25d4-464f-9bb0-303d7cf5c0c2"
    }
  }
La respuesta incluye un ID de tarea que puedes supervisar:
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Supervisa el estado del trabajo:
curl --location --request GET 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v1/job/1b34b6f6-8f43-40fb-9a52-485b0dfe893a' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…hE9ss2NubK6wZRHUdSaORI7JvcOorUhJ8srqdiUiW6MvuGIFAQIh668of2M3dLbhVDBe8BBMtsa939UGnJx7Qz6Eg'
Respuesta:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "PENDING",
      "error": "",
      "time": 1651852160000
    }
  ]
}
Supervisa hasta que <code>el estado</code> sea <code>COMPLETED</code>:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}