

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 快照 API
<a name="Grafana-API-Snapshot"></a>

使用快照 API 在 Amazon Managed Grafana 工作区中处理快照。

**注意**  
要对 Amazon Managed Grafana 工作区使用 Grafana API，您必须拥有有效的 Grafana API 令牌。您可以将其包含在 API 请求的 `Authorization` 字段中。有关如何创建令牌对 API 调用进行身份验证的信息，请参阅 [使用令牌进行身份验证](authenticating-grafana-apis.md)。

## 创建新快照
<a name="Grafana-API-Snapshot-create"></a>

```
POST /api/snapshots
```

**示例请求**

```
POST /api/snapshots HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

    {
      "dashboard": {
        "editable":false,
        "hideControls":true,
        "nav":[
        {
          "enable":false,
        "type":"timepicker"
        }
        ],
        "rows": [
          {

          }
        ],
        "style":"dark",
        "tags":[],
        "templating":{
          "list":[
          ]
        },
        "time":{
        },
        "timezone":"browser",
        "title":"Home",
        "version":5
        },
      "expires": 3600
    }
```

JSON 正文架构：
+ **dashboard**：（必填）完整的控制面板模型。
+ **name**：（可选）快照的名称。
+ **expires**：（可选）快照应过期的时间（以秒为单位）。默认值为永不过期。
+ **external**：（可选）将快照保存到外部服务器而不是本地。默认设置为“false”。
+ **key**：（如果 `external` 为 `true`，则为必填项）定义唯一键。
+ **deletekey**：（如果 `external` 为 `true`，则为必填项）用于删除快照的唯一键。它与 `key` 不同，只有创建者才能删除快照。

**注意**  
使用 API 创建快照时，您必须提供包括快照数据在内的完整控制面板有效载荷。此端点专为 Grafana UI 而设计。

**响应示例**

```
HTTP/1.1 200
    Content-Type: application/json
    {
      "deleteKey":"XXXXXXX",
      "deleteUrl":"myurl/api/snapshots-delete/XXXXXXX",
      "key":"YYYYYYY",
      "url":"myurl/dashboard/snapshot/YYYYYYY",
      "id": 1,
    }
```

键：
+ **deleteKey**：生成用于删除快照的键。
+ **key**：生成用于共享控制面板的键。

## 获取快照列表
<a name="Grafana-API-snapshot-list"></a>

```
GET /api/dashboard/snapshots
```

查询参数：
+ **query**：搜索查询
+ **limit**：限制返回结果的数量

**示例请求**

```
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

[
  {
    "id":8,
    "name":"Home",
    "key":"YYYYYYY",
    "orgId":1,
    "userId":1,
    "external":false,
    "externalUrl":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00",
    "updated":"2200-13-32T28:24:23+02:00"
  }
]
```

## 按键获取快照
<a name="Grafana-API-snapshot-get-bykey"></a>

```
GET /api/snapshots/:key
```

**示例请求**

```
GET /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "meta":{
    "isSnapshot":true,
    "type":"snapshot",
    "canSave":false,
    "canEdit":false,
    "canStar":false,
    "slug":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00"
  },
  "dashboard": {
    "editable":false,
    "hideControls":true,
    "nav": [
      {
        "enable":false,
        "type":"timepicker"
      }
    ],
    "rows": [
      {

      }
    ],
    "style":"dark",
    "tags":[],
    "templating":{
      "list":[
      ]
    },
    "time":{
    },
    "timezone":"browser",
    "title":"Home",
    "version":5
  }
}
```

## 按键删除快照
<a name="Grafana-API-snapshot-delete-bykey"></a>

```
DELETE /api/snapshots/:key
```

**示例请求**

```
DELETE /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}
```

## 使用 deleteKey 删除快照
<a name="Grafana-API-snapshot-delete-deletekey"></a>

通过使用快照的密钥删除键，无需身份验证即可使用此 API 调用。

```
GET /api/snapshots-delete/:deleteKey
```

**示例请求**

```
GET /api/snapshots-delete/XXXXXXX HTTP/1.1
Accept: application/json
```

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}
```