Snímek
Prostředek snímku není k dispozici v rozhraní API verze 1.0.
Snímek je prostředek identifikovaný jedinečným názvem. Podívejte se na podrobnosti o jednotlivých operacích.
Operace
- Získat
- Vypsat více
- Vytvoření
- Archivovat/obnovit
- Výpis hodnot klíč-hodnota
Požadavky
- Všechny požadavky HTTP musí být ověřeny. Viz část ověřování.
- Všechny požadavky HTTP musí poskytovat explicitní
api-version
. Viz část správa verzí.
Syntaxe
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>]
}
Získání snímku
Povinné: {name}
, {api-version}
GET /snapshots/{name}?api-version={api-version}
Odpovědi:
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
}
Pokud snímek se zadaným názvem neexistuje, vrátí se následující odpověď:
HTTP/1.1 404 Not Found
Získání (podmíněně)
Pokud chcete zlepšit ukládání do mezipaměti klienta, použijte hlavičky požadavků nebo If-None-Match
je použijteIf-Match
. Argument etag
je součástí reprezentace snímku. Další informace najdete v částech 14.24 a 14.26.
Následující požadavek načte snímek pouze v případě, že aktuální reprezentace neodpovídá zadanému etag
:
GET /snapshot/{name}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "{etag}"
Odpovědi:
HTTP/1.1 304 NotModified
Nebo
HTTP/1.1 200 OK
Výpis snímků
Volitelné: name
(Pokud není zadáno, znamená to jakýkoli název.) Volitelné: status
(Pokud není zadáno, znamená to jakýkoli stav.)
GET /snapshots?name=prod-*&api-version={api-version} HTTP/1.1
Odpověď:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshotset+json; charset=utf-8
Další možnosti najdete v části Filtrování dále v tomto článku.
Stránkování
Výsledek se stránkuje, pokud počet vrácených položek překročí limit odpovědi. Postupujte podle volitelných Link
hlaviček odpovědí a použijte rel="next"
k navigaci.
Obsah také poskytuje další odkaz ve formě @nextLink
vlastnosti. Propojený identifikátor URI obsahuje api-version
argument.
GET /snapshots?api-version={api-version} HTTP/1.1
Odpověď:
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}"
}
Filtrování
Podporuje se kombinace name
a status
filtrování.
Použijte volitelné name
parametry řetězce dotazu a status
parametry řetězce dotazu.
GET /snapshots?name={name}&status={status}&api-version={api-version}
Podporované filtry
Filtr názvů | Účinnost |
---|---|
name je vynechán nebo name=* |
Odpovídá snímkům s libovolným názvem. |
name=abc |
Odpovídá snímku s názvem abc. |
name=abc* |
Odpovídá snímkům s názvy, které začínají na abc. |
name=abc,xyz |
Odpovídá snímkům s názvy abc nebo xyz (omezeno na 5 CSV) |
Filtr stavu | Účinnost |
---|---|
status je vynechán nebo status=* |
Odpovídá snímkům se stavem |
status=ready |
Odpovídá snímkům se stavem připraveno |
status=ready,archived |
Odpovídá snímkům s připraveným nebo archivovaným stavem (omezený na 5 CSV) |
Rezervované znaky
*
, , \
,
Pokud je vyhrazený znak součástí hodnoty, musí být řídicí znak pomocí .\{Reserved Character}
Nezarezervované znaky mohou být také řídicími znaky.
Ověření filtru
Pokud se ověření filtru nezdaří, odpověď je HTTP 400
s podrobnostmi o chybě:
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
}
Příklady
Všechny
GET /snapshots?api-version={api-version}
Název snímku začíná abc
GET /snapshot?name=abc*&api-version={api-version}
Název snímku začíná abc a stav se rovná připravenosti nebo archivaci.
GET /snapshot?name=abc*&status=ready,archived&api-version={api-version}
Zadání konkrétních polí
Použijte volitelný $select
parametr řetězce dotazu a zadejte čárkami oddělený seznam požadovaných polí. $select
Pokud parametr vynecháte, odpověď obsahuje výchozí sadu.
GET /snapshot?$select=name,status&api-version={api-version} HTTP/1.1
Vytvořit snímek
parameters
Název vlastnosti | Požaduje se | Default value | Ověřování |
---|---|---|---|
name | ano | Není k dispozici | Délka Maximum: 256 |
Filtry | ano | Není k dispozici | Počítat Minimum: 1 Maximum: 3 |
filters[<index>].key | ano | Není k dispozici | |
filters[<index>].label | ne | null | Filtry popisků s více shodami (například" "*", "čárka,oddělené") nejsou podporovány u typu "klíč" složení. |
značky | ne | {} | |
composition_type | ne | key | |
retention_period | ne | Úroveň Standard 2592000 (30 dní) Úroveň Free 604800 (sedm dní) |
Úroveň Standard Minimum: 3600 (jedna hodina) Maximum: 7776000 (90 dní) Úroveň Free Minimum: 3600 (jedna hodina) Maximum: 604800 (sedm dní) |
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
}
Odpovědi:
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
}
Název vlastnosti | Požaduje se | Default value | Ověřování |
---|---|---|---|
name | ano | Není k dispozici | Délka Maximum: 256 |
Filtry | ano | Není k dispozici | Počítat Minimum: 1 Maximum: 3 |
filters[<index>].key | ano | Není k dispozici | |
filters[<index>].label | ne | null | Filtry popisků s více shodami (například" "*", "čárka,oddělené") nejsou podporovány u typu "klíč" složení. |
filters[<index>].tags | ne | null | Počítat Minimum: 0 Maximum: 5 |
značky | ne | {} | |
composition_type | ne | key | |
retention_period | ne | Úroveň Standard 2592000 (30 dní) Úroveň Free 604800 (7 dní) |
Úroveň Standard Minimum: 3600 (1 hodina) Maximum: 7776000 (90 dní) Úroveň Free Minimum: 3600 (1 hodina) Maximum: 604800 (7 dní) |
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
}
Odpovědi:
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
}
Stav nově vytvořeného snímku je provisioning
.
Po úplném zřízení snímku se stav aktualizuje na ready
.
Klienti se mohou dotazovat na snímek, aby čekali, až bude snímek připravený, a teprve potom vypsat přidružené hodnoty klíče.
Pokud chcete zadat dotaz na další informace o operaci, přejděte do části vytvoření snímku dotazu.
Pokud snímek již existuje, vrátí se následující odpověď:
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": ""
}
Vytvoření snímku dotazu
Odpověď požadavku na vytvoření snímku vrátí hlavičku Operation-Location
.
Odpovědi:
HTTP/1.1 201 Created
...
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
Stav operace zřizování snímků najdete v identifikátoru URI obsaženém v Operation-Location
.
Klienti se mohou dotazovat na tento stavový objekt, aby se zajistilo, že je snímek zřízený před výpisem přidružených hodnot klíče.
GET {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
Odpověď:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"id": "{id}",
"status": "Succeeded",
"error": null
}
Pokud během zřizování snímku dojde k nějaké chybě, error
vlastnost obsahuje podrobnosti popisující chybu.
{
"id": "{name}",
"status": "Failed",
"error": {
"code": "QuotaExceeded",
"message": "The allotted quota for snapshot creation has been surpassed."
}
}
Archiv (oprava)
Snímek ve ready
stavu je možné archivovat.
Archivovaný snímek má přiřazené datum vypršení platnosti na základě doby uchovávání informací stanoveného v okamžiku jejího vytvoření.
Po uplynutí data vypršení platnosti se snímek trvale odstraní.
Položky snímku se dají kdykoli před datem vypršení platnosti zobrazit.
Archivace snímku, který už archived
nemá vliv na snímek.
- Povinné:
{name}
,{status}
,{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "archived"
}
Odpověď: Vrácení archivovaného snímku
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"
}
Archivace snímku, který je aktuálně ve stavu nebo failed
ve provisioning
stavu, je neplatná operace.
Odpověď:
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
}
Obnovení (oprava)
Snímek ve archived
stavu lze obnovit.
Po obnovení snímku se odebere datum vypršení platnosti snímku.
Obnovení snímku, který už ready
nemá vliv na snímek
- Povinné:
{name}
,{status}
,{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "ready"
}
Odpověď: Vrácení obnoveného snímku
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
{
"etag": "90dd86e2885440f3af9398ca392095b9",
"name": "{name}",
"status": "ready",
...
}
Obnovení snímku, který je aktuálně ve stavu nebo failed
ve provisioning
stavu, je neplatná operace.
Odpověď:
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
}
Archivace/obnovení snímku (podmíněně)
Pokud chcete zabránit podmínkám časování, použijte If-Match
hlavičky požadavků nebo If-None-Match
jejich hlavičky. Argument etag
je součástí reprezentace snímku.
Pokud If-Match
je operace vynechána nebo If-None-Match
je vynechána, je nepodmíněná.
Následující odpověď aktualizuje prostředek pouze v případě, že aktuální reprezentace odpovídá zadanému etag
:
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
Následující odpověď aktualizuje prostředek pouze v případě, že aktuální reprezentace neodpovídá zadanému etag
:
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
Odezvy
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
Nebo
HTTP/1.1 412 PreconditionFailed
Výpis hodnot klíče snímku
Povinné: {name}
, {api-version}
GET /kv?snapshot={name}&api-version={api-version}
Poznámka:
Při pokusu o výpis položek snímku, který není ve stavu nebo archived
ve ready
stavu, bude výsledkem prázdná odpověď na seznam.
Zadání konkrétních polí
Použijte volitelný $select
parametr řetězce dotazu a zadejte čárkami oddělený seznam požadovaných polí. $select
Pokud parametr vynecháte, odpověď obsahuje výchozí sadu.
GET /kv?snapshot={name}&$select=key,value&api-version={api-version} HTTP/1.1