Snapshot

A pillanatképek neve alapján egyedileg azonosított erőforrás. Az egyes műveletek részleteinek megtekintése.

Ez a cikk az API 2022-11-01-preview verziójára vonatkozik.

Operations

  • Lekérés
  • Több lista
  • Létrehozás
  • Archiválás/helyreállítás
  • Kulcsértékek listázása

Előfeltételek

Syntax

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]
}

Pillanatkép lekérése

Kötelező: {name}, {api-version}

GET /snapshots/{name}?api-version={api-version}

Válaszok:

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
}

Ha a megadott névvel rendelkező pillanatkép nem létezik, a rendszer a következő választ adja vissza:

HTTP/1.1 404 Not Found

Lekérés (feltételesen)

Az ügyfél gyorsítótárazásának javítása érdekében használja If-Match vagy If-None-Match kérje le a fejléceket. Az etag argumentum a pillanatkép-ábrázolás része. További információ: 14.24 és 14.26.

A következő kérés csak akkor kéri le a pillanatképet, ha az aktuális ábrázolás nem felel meg a megadottnak etag:

GET /snapshot/{name}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "{etag}"

Válaszok:

HTTP/1.1 304 NotModified

vagy

HTTP/1.1 200 OK

Pillanatképek listázása

Nem kötelező: name (Ha nincs megadva, az bármilyen nevet jelent.) Nem kötelező: status (Ha nincs megadva, az bármilyen állapotot jelent.)

GET /snapshots?name=prod-*&api-version={api-version} HTTP/1.1

Válasz:

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshotset+json; charset=utf-8

További lehetőségekért tekintse meg a cikk későbbi, "Szűrés" szakaszát.

Pagination

Az eredmény lapszámozott, ha a visszaadott elemek száma meghaladja a válaszkorlátot. Kövesse az opcionális Link válaszfejléceket, és használja rel="next" a navigációhoz. Másik lehetőségként a tartalom egy következő hivatkozást is biztosít a @nextLink tulajdonság formájában. A csatolt URI tartalmazza az argumentumot api-version .

GET /snapshots?api-version={api-version} HTTP/1.1

Válasz:

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}"
}

Szűrés

A szűrés és status a name kombináció támogatott. Használja az opcionális name és status a lekérdezési sztring paramétereit.

GET /snapshots?name={name}&status={status}&api-version={api-version}

Támogatott szűrők

Névszűrő Hatály
name nincs megadva, vagy name=* Bármely névvel egyező pillanatképek
name=abc Egy abc nevű pillanatképnek felel meg
name=abc* Pillanatképek abc-vel kezdődő névvel
name=abc,xyz Pillanatképek abc vagy xyz névvel (legfeljebb 5 CSV)
Állapotszűrő Hatály
status nincs megadva, vagy status=* A pillanatképek bármilyen állapottal megegyeznek
status=ready Pillanatképek kész állapottal való egyezése
status=ready,archived Kész vagy archivált állapotú pillanatképek (legfeljebb 5 CSV)

Fenntartott karakterek

*, \, ,

Ha egy fenntartott karakter az érték része, akkor azt a használatával \{Reserved Character}kell megszabadíteni. A nem fenntartott karakterek is feloldhatók.

Szűrés ellenőrzése

Szűrőérvényesítési hiba esetén a válasz HTTP 400 , a hiba részleteivel:

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éldák

  • Mind

    GET /snapshots?api-version={api-version}
    
  • A pillanatkép neve az abc-vel kezdődik

    GET /snapshot?name=abc*&api-version={api-version}
    
  • A pillanatkép neve abc-vel kezdődik, és az állapot készen áll vagy archiválva lesz

    GET /snapshot?name=abc*&status=ready,archived&api-version={api-version}
    

Adott mezők kérése

Használja az opcionális $select lekérdezési sztring paramétert, és adja meg a kért mezők vesszővel tagolt listáját. Ha a $select paraméter nincs megadva, a válasz tartalmazza az alapértelmezett halmazt.

GET /snapshot?$select=name,status&api-version={api-version} HTTP/1.1

Pillanatkép készítése

paraméterek

Tulajdonság neve Szükséges Default value Ellenőrzés
név igen n.a. Hossza
     maximum: 256
szűrők igen n.a. Számít
     minimum: 1
     maximum: 3
filters[<index>].key igen n.a.
tags nem {}
filters[<index>].label nem null A többegyezéses címkeszűrők (pl. "*", "vessző,elválasztott") nem támogatottak a "kulcs" összetételtípussal.
composition_type nem kulcs
retention_period nem Standard szint
     2592000 (30 nap)
Ingyenes szint
     604800 (7 nap)
Standard szint
     minimum: 3600 (1 óra)
     maximum: 7776000 (90 nap)
Ingyenes szint
     minimum: 3600 (1 óra)
     maximum: 604800 (7 nap)
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
}

Válaszok:

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
}

Az újonnan létrehozott pillanatkép állapota "kiépítés". A pillanatkép teljes kiépítése után az állapot "kész" állapotra frissül. Az ügyfelek lekérdezhetik a pillanatképet, hogy megvárják, amíg a pillanatkép készen áll, mielőtt felsorolnák a kapcsolódó kulcsértékeket. A művelettel kapcsolatos további információk lekérdezéséhez tekintse meg a lekérdezési pillanatkép létrehozását ismertető szakaszt.

Ha a pillanatkép már létezik, a következő választ kapja:

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": ""
}

Pillanatkép létrehozása lekérdezése

A pillanatkép-létrehozási kérés válasza egy fejlécet Operation-Location ad vissza.

Válaszok:

HTTP/1.1 201 Created
...
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}

A pillanatkép-kiépítési művelet állapota az URI-ban Operation-Locationtalálható. Az ügyfelek lekérdezhetik ezt az állapotobjektumot, hogy meggyőződjenek arról, hogy a pillanatkép ki van építve a társított kulcsértékek felsorolása előtt.

GET {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}

Válasz:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
    "id": "{id}",
    "status": "Succeeded",
    "error": null
}

Ha hiba történik a pillanatkép kiépítése során, a error tulajdonság a hibát leíró részleteket tartalmazza.

{
    "id": "{name}",
    "status": "Failed",
    "error": {
      "code": "QuotaExceeded",
      "message": "The allotted quota for snapshot creation has been surpassed."
    }
}

Archív (javítás)

Az állapotban lévő ready pillanatképek archiválhatók. Az archivált pillanatképek lejárati dátumot kapnak a létrehozáskor megállapított megőrzési idő alapján. A lejárati dátum lejárta után a pillanatkép véglegesen törlődik. A lejárati dátum előtt bármikor a pillanatkép elemei továbbra is listázhatók.

A már archived meglévő pillanatképek archiválása nem befolyásolja a pillanatképet.

  • Kötelező: {name}, , {status}{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
  "status": "archived"
}

Válasz: Az archivált pillanatkép visszaadása

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"
}

Az aktuálisan vagy failed állapotban lévő provisioning pillanatkép archiválása érvénytelen művelet.

Válasz:

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
}

Helyreállítás (javítás)

Az állapotban lévő archived pillanatképek helyreállíthatók. A pillanatkép helyreállítása után a pillanatkép lejárati dátuma el lesz távolítva.

A már ready meglévő pillanatkép helyreállítása nem befolyásolja a pillanatképet.

  • Kötelező: {name}, , {status}{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
  "status": "ready"
}

Válasz: A helyreállított pillanatkép visszaadása

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
{
  "etag": "90dd86e2885440f3af9398ca392095b9",
  "name": "{name}",
  "status": "ready",
  ...
}

A jelenleg vagy failed állapotban lévő provisioning pillanatkép helyreállítása érvénytelen művelet.

Válasz:

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
}

Pillanatkép archiválása/helyreállítása (feltételesen)

A versenyfeltételek elkerülése érdekében használja If-Match vagy If-None-Match kérje a fejléceket. Az etag argumentum a pillanatkép-ábrázolás része. Ha If-Match nincs megadva If-None-Match , a művelet feltétel nélküli.

Az alábbi válasz csak akkor frissíti az erőforrást, ha az aktuális ábrázolás megfelel a megadottnak etag:

PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Az alábbi válasz csak akkor frissíti az erőforrást, ha az aktuális ábrázolás nem felel meg a megadottnak etag:

PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Válaszok

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...

vagy

HTTP/1.1 412 PreconditionFailed

Pillanatképkulcs-értékek listázása

Kötelező: {name}, {api-version}

GET /kv?snapshot={name}&api-version={api-version}

Megjegyzés:

Ha megkísérli listázni egy pillanatkép azon elemeit, amelyek nem az állapotban archived vagy állapotban ready találhatók, üres listaválaszt eredményez.

Adott mezők kérése

Használja az opcionális $select lekérdezési sztring paramétert, és adja meg a kért mezők vesszővel tagolt listáját. Ha a $select paraméter nincs megadva, a válasz tartalmazza az alapértelmezett halmazt.

GET /kv?snapshot={name}&$select=key,value&api-version={api-version} HTTP/1.1