

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 快照 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)。

## 建立新的 shapshot
<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 內文結構描述：
+ **儀表板** — （必要） 完整的儀表板模型。
+ **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
```

查詢參數：
+ **查詢** — 搜尋查詢
+ **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}
```