스냅샷
스냅샷 리소스는 API 버전 1.0에서 사용할 수 없습니다.
스냅샷은 이름으로 고유하게 식별되는 리소스입니다. 각 작업에 대한 세부 정보를 참조하세요.
작업
- Get
- 여러 목록
- 생성
- 보관/복구
- 키-값 나열
필수 조건
구문
Snapshot
{
"etag": [string],
"name": [string],
"status": [string, enum("provisioning", "ready", "archived", "failed")],
"filters": [array<SnapshotFilter>],
"composition_type": [string, enum("key", "key_label")],
"created": [datetime ISO 8601],
"size": [number, bytes],
"items_count": [number],
"tags": [object with string properties],
"retention_period": [number, timespan in seconds],
"expires": [datetime ISO 8601]
}
SnapshotFilter
{
"key": [string],
"label": [string]
}
{
"key": [string],
"label": [string],
"tags": [array<string>]
}
스냅샷 가져오기
필수: {name}
, {api-version}
GET /snapshots/{name}?api-version={api-version}
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
Last-Modified: Mon, 03 Mar 2023 9:00:03 GMT
ETag: "4f6dd610dd5e4deebc7fbaef685fb903"
Link: </kv?snapshot=prod-2023-03-20&api-version={api-version}>; rel="items"
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"name": "prod-2023-03-20",
"status": "ready",
"filters": [
{
"key": "*",
"label": null
}
],
"composition_type": "key",
"created": "2023-03-20T21:00:03+00:00",
"size": 2000,
"items_count": 4,
"tags": {
"t1": "value1",
"t2": "value2"
},
"retention_period": 7776000
}
제공된 이름의 스냅샷이 없으면 다음 응답이 반환됩니다.
HTTP/1.1 404 Not Found
가져오기(조건부)
클라이언트 캐싱을 향상시키려면 If-Match
또는 If-None-Match
요청 헤더를 사용합니다. 인수는 etag
스냅샷 표현의 일부입니다. 자세한 내용은 섹션 14.24 및 14.26을 참조하세요.
다음 요청은 현재 표현이 지정된 etag
표현과 일치하지 않는 경우에만 스냅샷을 검색합니다.
GET /snapshot/{name}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "{etag}"
응답:
HTTP/1.1 304 NotModified
또는
HTTP/1.1 200 OK
스냅샷 나열
선택 사항: name
(지정하지 않으면 모든 이름을 의미합니다.) 선택 사항: status
(지정하지 않으면 상태를 의미합니다.)
GET /snapshots?name=prod-*&api-version={api-version} HTTP/1.1
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshotset+json; charset=utf-8
자세한 옵션은 이 문서의 뒷부분에 있는 "필터링" 섹션을 참조하세요.
페이지 매김
반환된 항목 수가 응답 제한을 초과하면 결과가 페이지가 매겨집니다. 선택적 Link
응답 헤더를 따르고 탐색에 사용합니다 rel="next"
.
또는 콘텐츠는 속성 형식의 @nextLink
다음 링크를 제공합니다. 연결된 URI는 api-version
인수를 포함합니다.
GET /snapshots?api-version={api-version} HTTP/1.1
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshotset+json; charset=utf-8
Link: <{relative uri}>; rel="next"
{
"items": [
...
],
"@nextLink": "{relative uri}"
}
필터링
name
및 status
필터링의 조합이 지원됩니다.
선택적 name
및 status
쿼리 문자열 매개 변수를 사용합니다.
GET /snapshots?name={name}&status={status}&api-version={api-version}
지원되는 필터
이름 필터 | 효과 |
---|---|
name 은 생략 또는 name=* |
스냅샷을 모든 이름과 일치 |
name=abc |
abc라는 스냅샷과 일치 |
name=abc* |
스냅샷을 abc로 시작하는 이름과 일치 |
name=abc,xyz |
이름 abc 또는 xyz와 스냅샷 일치(CSV 5개로 제한) |
상태 필터 | 효과 |
---|---|
status 은 생략 또는 status=* |
스냅샷을 상태와 일치 |
status=ready |
스냅샷을 준비 상태와 일치 |
status=ready,archived |
준비된 상태 또는 보관된 상태(5 CSV로 제한됨)로 스냅샷 일치 |
예약 문자
*
, , \
,
예약 문자가 값의 일부인 \{Reserved Character}
경우 . 예약되지 않은 문자도 이스케이프할 수 있습니다.
필터 유효성 검사
필터 유효성 검사에 실패하면 응답은 오류 세부 정보가 포함된 HTTP 400
입니다.
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://azconfig.io/errors/invalid-argument",
"title": "Invalid request parameter '{filter}'",
"name": "{filter}",
"detail": "{filter}(2): Invalid character",
"status": 400
}
예제
모두
GET /snapshots?api-version={api-version}
스냅샷 이름이 abc로 시작됩니다.
GET /snapshot?name=abc*&api-version={api-version}
스냅샷 이름은 abc로 시작하고 상태는 준비 또는 보관됨과 같습니다.
GET /snapshot?name=abc*&status=ready,archived&api-version={api-version}
요청 관련 필드
선택적 $select
쿼리 문자열 매개 변수를 사용하고 요청된 필드의 쉼표로 구분된 목록을 제공합니다. $select
매개 변수를 생략하면 응답에 기본 세트가 포함됩니다.
GET /snapshot?$select=name,status&api-version={api-version} HTTP/1.1
스냅샷 만들기
parameters
속성 이름 | Required | Default value | 유효성 검사 |
---|---|---|---|
name | 예 | 해당 없음 | 길이 최대: 256 |
필터 | 예 | 해당 없음 | 개수 최소: 1 최대값: 3 |
filters[<index>].key | 예 | 해당 없음 | |
filters[<index>].label | 아니요 | null | 다중 일치 레이블 필터(예: "*", "쉼표,구분됨")는 'key' 컴퍼지션 형식에서 지원되지 않습니다. |
tags | 아니요 | {} | |
composition_type | 아니요 | key | |
retention_period | 아니요 | 표준 계층 2592000(30일) 무료 계층 604800(7일) |
표준 계층 최소: 3600(1시간) 최대값: 7776000(90일) 무료 계층 최소: 3600(1시간) 최대값: 604800(7일) |
PUT /snapshot/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"filters": [ // required
{
"key": "app1/*", // required
"label": "prod" // optional
}
],
"tags": { // optional
"tag1": "value1",
"tag2": "value2",
},
"composition_type": "key", // optional
"retention_period": 2592000 // optional
}
응답:
HTTP/1.1 201 Created
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
Last-Modified: Tue, 05 Dec 2017 02:41:26 GMT
ETag: "4f6dd610dd5e4deebc7fbaef685fb903"
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"name": "{name}",
"status": "provisioning",
"filters": [
{
"key": "app1/*",
"label": "prod"
}
],
"composition_type": "key",
"created": "2023-03-20T21:00:03+00:00",
"size": 2000,
"items_count": 4,
"tags": {
"t1": "value1",
"t2": "value2"
},
"retention_period": 2592000
}
속성 이름 | Required | Default value | 유효성 검사 |
---|---|---|---|
name | 예 | 해당 없음 | 길이 최대: 256 |
필터 | 예 | 해당 없음 | 개수 최소: 1 최대값: 3 |
filters[<index>].key | 예 | 해당 없음 | |
filters[<index>].label | 아니요 | null | 다중 일치 레이블 필터(예: "*", "쉼표,구분됨")는 'key' 컴퍼지션 형식에서 지원되지 않습니다. |
filters[<index>].tags | 아니요 | null | 개수 최소: 0 최대값: 5 |
tags | 아니요 | {} | |
composition_type | 아니요 | key | |
retention_period | 아니요 | 표준 계층 2592000(30일) 무료 계층 604800(7일) |
표준 계층 최소: 3600(1시간) 최대값: 7776000(90일) 무료 계층 최소: 3600(1시간) 최대값: 604800(7일) |
PUT /snapshot/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"filters": [ // required
{
"key": "app1/*", // required
"label": "prod", // optional
"tags": ["group=g1", "default=true"] // optional
}
],
"tags": { // optional
"tag1": "value1",
"tag2": "value2",
},
"composition_type": "key", // optional
"retention_period": 2592000 // optional
}
응답:
HTTP/1.1 201 Created
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
Last-Modified: Tue, 05 Dec 2017 02:41:26 GMT
ETag: "4f6dd610dd5e4deebc7fbaef685fb903"
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"name": "{name}",
"status": "provisioning",
"filters": [
{
"key": "app1/*",
"label": "prod",
"tags": ["group=g1", "default=true"]
}
],
"composition_type": "key",
"created": "2023-03-20T21:00:03+00:00",
"size": 2000,
"items_count": 4,
"tags": {
"t1": "value1",
"t2": "value2"
},
"retention_period": 2592000
}
새로 만든 스냅샷의 상태는 .입니다 provisioning
.
스냅샷이 완전히 프로비전되면 상태가 업데이트됩니다 ready
.
클라이언트는 연결된 키 값을 나열하기 전에 스냅샷이 준비될 때까지 기다리도록 스냅샷을 폴링할 수 있습니다.
작업에 대한 추가 정보를 쿼리하려면 폴링 스냅샷 만들기 섹션을 참조하세요.
스냅샷이 이미 있는 경우 다음 응답이 반환됩니다.
HTTP/1.1 409 Conflict
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://azconfig.io/errors/already-exists",
"title": "The resource already exists.",
"status": 409,
"detail": ""
}
폴링 스냅샷 만들기
스냅샷 만들기 요청의 응답은 헤더를 반환합니다 Operation-Location
.
응답:
HTTP/1.1 201 Created
...
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
스냅샷 프로비저닝 작업의 상태는 에 포함된 URI에서 Operation-Location
찾을 수 있습니다.
클라이언트는 연결된 키 값을 나열하기 전에 스냅샷이 프로비전되도록 이 상태 개체를 폴링할 수 있습니다.
GET {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
응답:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"id": "{id}",
"status": "Succeeded",
"error": null
}
스냅샷을 프로비전하는 동안 오류가 발생하면 속성에 error
오류를 설명하는 세부 정보가 포함됩니다.
{
"id": "{name}",
"status": "Failed",
"error": {
"code": "QuotaExceeded",
"message": "The allotted quota for snapshot creation has been surpassed."
}
}
보관(패치)
상태의 스냅샷은 ready
보관할 수 있습니다.
보관된 스냅샷에는 해당 스냅샷을 만들 때 설정된 보존 기간을 기준으로 만료 날짜가 할당됩니다.
만료 날짜가 지나면 스냅샷이 영구적으로 삭제됩니다.
만료 날짜 전에 언제든지 스냅샷의 항목을 계속 나열할 수 있습니다.
이미 archived
스냅샷을 보관해도 스냅샷에는 영향을 주지 않습니다.
- 필수:
{name}
,{status}
{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "archived"
}
응답: 보관된 스냅샷 반환
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
{
"etag": "33a0c9cdb43a4c2cb5fc4c1feede1c68",
"name": "{name}",
"status": "archived",
...
"expires": "2023-08-11T21:00:03+00:00"
}
현재 또는 failed
상태에 있는 스냅샷을 provisioning
보관하는 것은 잘못된 작업입니다.
응답:
HTTP/1.1 409 Conflict
Content-Type: application/problem+json; charset="utf-8"
{
"type": "https://azconfig.io/errors/invalid-state",
"title": "Target resource state invalid.",
"detail": "The target resource is not in a valid state to perform the requested operation.",
"status": 409
}
복구(패치)
상태의 스냅샷을 archived
복구할 수 있습니다.
스냅샷이 복구되면 스냅샷의 만료 날짜가 제거됩니다.
이미 ready
스냅샷을 복구해도 스냅샷에는 영향을 주지 않습니다.
- 필수:
{name}
,{status}
{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "ready"
}
응답: 복구된 스냅샷 반환
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
{
"etag": "90dd86e2885440f3af9398ca392095b9",
"name": "{name}",
"status": "ready",
...
}
현재 또는 failed
상태에 있는 스냅샷을 provisioning
복구하는 것은 잘못된 작업입니다.
응답:
HTTP/1.1 409 Conflict
Content-Type: application/problem+json; charset="utf-8"
{
"type": "https://azconfig.io/errors/invalid-state",
"title": "Target resource state invalid.",
"detail": "The target resource is not in a valid state to perform the requested operation.",
"status": 409
}
스냅샷 보관/복구(조건부)
경합 상태를 방지하려면 헤더를 사용 If-Match
하거나 If-None-Match
요청합니다. 인수는 etag
스냅샷 표현의 일부입니다.
If-Match
또는 If-None-Match
가 생략된 경우에는 작업이 무조건 수행됩니다.
다음 응답은 현재 표현이 지정된 표현과 일치하는 경우에만 리소스를 업데이트합니다 etag
.
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
다음 응답은 현재 표현이 지정된 표현과 일치하지 않는 경우에만 리소스를 업데이트합니다 etag
.
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
응답
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
또는
HTTP/1.1 412 PreconditionFailed
스냅샷 키-값 나열
필수: {name}
, {api-version}
GET /kv?snapshot={name}&api-version={api-version}
참고 항목
또는 상태가 아닌 ready
archived
스냅샷의 항목을 나열하려고 하면 빈 목록 응답이 발생합니다.
요청 관련 필드
선택적 $select
쿼리 문자열 매개 변수를 사용하고 요청된 필드의 쉼표로 구분된 목록을 제공합니다. $select
매개 변수를 생략하면 응답에 기본 세트가 포함됩니다.
GET /kv?snapshot={name}&$select=key,value&api-version={api-version} HTTP/1.1