

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 스냅샷 API
<a name="v10-Grafana-API-Snapshot"></a>

스냅샷 API를 사용하여 Amazon Managed Grafana 워크스페이스의 스냅샷에 대한 작업을 작업합니다.

**참고**  
Amazon Managed Grafana 워크스페이스에서 Grafana API를 사용하려면 유효한 서비스 계정 토큰이 있어야 합니다. API 요청의 `Authorization` 필드에 이를 포함합니다.

## 새 스냅샷 생성
<a name="v10-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** - (선택 사항) 스냅샷이 만료되어야 하는 시점(초 단위). 기본값은 만료되지 않음입니다.
+ **외부** - (선택 사항) 로컬이 아닌 외부 서버에 스냅샷을 저장합니다. 기본값은 false입니다.
+ **키** - (`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="v10-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"
  }
]
```

## key로 스냅샷 가져오기
<a name="v10-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
  }
}
```

## key로 스냅샷 삭제
<a name="v10-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="v10-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}
```