Dela via


Ögonblicksbild

En ögonblicksbild är en resurs som identifieras unikt med dess namn. Se information för varje åtgärd.

Den här artikeln gäller för API-version 2022-11-01-preview.

Operations

  • Hämta
  • Visa en lista över flera
  • Skapa
  • Arkivera/återställa
  • Lista nyckelvärden

Förutsättningar

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

Hämta ögonblicksbild

Krävs: {name}, {api-version}

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

Svaren:

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
}

Om det inte finns någon ögonblicksbild med det angivna namnet returneras följande svar:

HTTP/1.1 404 Not Found

Hämta (villkorligt)

För att förbättra klientcachelagring använder If-Match du eller If-None-Match begär rubriker. Argumentet etag är en del av ögonblicksbildsrepresentationen. Mer information finns i avsnitten 14.24 och 14.26.

Följande begäran hämtar endast ögonblicksbilden om den aktuella representationen inte matchar den angivna etag:

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

Svaren:

HTTP/1.1 304 NotModified

eller

HTTP/1.1 200 OK

Lista ögonblicksbilder

Valfritt: name (Om det inte anges innebär det något namn.) Valfritt: status (Om det inte anges innebär det någon status.)

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

Svar:

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

Ytterligare alternativ finns i avsnittet "Filtrering" senare i den här artikeln.

Sidnumrering

Resultatet sidnumreras om antalet returnerade objekt överskrider svarsgränsen. Följ de valfria Link svarshuvudena och använd rel="next" för navigering. Alternativt tillhandahåller innehållet en nästa länk i form av @nextLink egenskapen. Den länkade URI:n api-version innehåller argumentet.

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

Svar:

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

Filtrering

En kombination av name och status filtrering stöds. Använd parametrarna för valfria name strängar och status frågesträngar.

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

Filter som stöds

Namnfilter Effekt
name utelämnas eller name=* Matchar ögonblicksbilder med valfritt namn
name=abc Matchar en ögonblicksbild med namnet abc
name=abc* Matchar ögonblicksbilder med namn som börjar med abc
name=abc,xyz Matchar ögonblicksbilder med namnen abc eller xyz (begränsat till 5 CSV)
Statusfilter Effekt
status utelämnas eller status=* Matchar ögonblicksbilder med valfri status
status=ready Matchar ögonblicksbilder med en klar status
status=ready,archived Matchar ögonblicksbilder med klar eller arkiverad status (begränsad till 5 CSV)

Reserverade tecken

*, \, ,

Om ett reserverat tecken är en del av värdet måste det kringgås med hjälp \{Reserved Character}av . Icke-reserverade tecken kan också undantagas.

Filterverifiering

Vid ett filterverifieringsfel är svaret HTTP 400 med felinformation:

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
}

Exempel

  • Alla

    GET /snapshots?api-version={api-version}
    
  • Namnet på ögonblicksbilden börjar med abc

    GET /snapshot?name=abc*&api-version={api-version}
    
  • Namnet på ögonblicksbilden börjar med abc och statusen är lika med klar eller arkiverad

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

Begär specifika fält

Använd den valfria frågesträngsparametern $select och ange en kommaavgränsad lista över begärda fält. Om parametern $select utelämnas innehåller svaret standarduppsättningen.

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

Skapa ögonblicksbild

parameters

Egenskapsnamn Obligatoriskt Default value Verifiering
name ja saknas Längd
     max: 256
filter ja saknas Räkna
     minimum: 1
     max: 3
filter[<index>].key ja saknas
tags no {}
filter[<index>].label no NULL Etikettfilter med flera matchning (t.ex. "*", "komma,avgränsade") stöds inte med kompositionstypen "nyckel".
composition_type no key
retention_period no Standardnivå
     2592000 (30 dagar)
Kostnadsfri nivå
     604800 (7 dagar)
Standardnivå
     minimum: 3600 (1 timme)
     max: 7776000 (90 dagar)
Kostnadsfri nivå
     minimum: 3600 (1 timme)
     max: 604800 (7 dagar)
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
}

Svaren:

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
}

Statusen för den nyligen skapade ögonblicksbilden är "etablering". När ögonblicksbilden är helt etablerad uppdateras statusen till "klar". Klienter kan avsöka ögonblicksbilden och vänta tills ögonblicksbilden är klar innan dess associerade nyckelvärden visas. Om du vill fråga efter ytterligare information om åtgärden refererar du till avsnittet om att skapa ögonblicksbilder av avsökningar.

Om ögonblicksbilden redan finns får du följande svar:

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

Skapa ögonblicksbild av avsökning

Svaret från en begäran om att skapa ögonblicksbilder returnerar ett Operation-Location huvud.

Svaren:

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

Status för etableringsåtgärden för ögonblicksbilder finns på URI:n i Operation-Location. Klienter kan avsöka det här statusobjektet för att säkerställa att en ögonblicksbild etableras innan dess associerade nyckelvärden visas.

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

Svar:

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

Om ett fel uppstår under etableringen av ögonblicksbilden error innehåller egenskapen information som beskriver felet.

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

Arkiv (korrigering)

En ögonblicksbild i tillståndet ready kan arkiveras. En arkiverad ögonblicksbild tilldelas ett förfallodatum baserat på den kvarhållningsperiod som upprättades när den skapades. När förfallodatumet har passerat tas ögonblicksbilden bort permanent. När som helst före förfallodatumet kan ögonblicksbildens objekt fortfarande visas.

Arkivering av en ögonblicksbild som redan archived är påverkar inte ögonblicksbilden.

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

Svar: Returnera den arkiverade ögonblicksbilden

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

Arkivering av en ögonblicksbild som för närvarande är i provisioning tillståndet eller failed är en ogiltig åtgärd.

Svar:

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
}

Återställ (korrigering)

En ögonblicksbild i tillståndet archived kan återställas. När ögonblicksbilden har återställts tas ögonblicksbildens förfallodatum bort.

Återställning av en ögonblicksbild som redan ready är påverkar inte ögonblicksbilden.

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

Svar: Returnera den återställda ögonblicksbilden

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

Att återställa en ögonblicksbild som för närvarande är i provisioning tillståndet eller failed är en ogiltig åtgärd.

Svar:

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
}

Arkivera/återställa ögonblicksbild (villkorligt)

För att förhindra tävlingsvillkor använder If-Match du eller If-None-Match begär rubriker. Argumentet etag är en del av ögonblicksbildsrepresentationen. Om If-Match eller If-None-Match utelämnas är åtgärden ovillkorlig.

Följande svar uppdaterar endast resursen om den aktuella representationen matchar den angivna etag:

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

Följande svar uppdaterar endast resursen om den aktuella representationen inte matchar den angivna etag:

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

Svar

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

eller

HTTP/1.1 412 PreconditionFailed

Lista nyckelvärden för ögonblicksbilder

Krävs: {name}, {api-version}

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

Kommentar

Om du försöker lista objekten i en ögonblicksbild som inte är i ready tillståndet eller archived resulterar det i ett tomt listsvar.

Begär specifika fält

Använd den valfria frågesträngsparametern $select och ange en kommaavgränsad lista över begärda fält. Om parametern $select utelämnas innehåller svaret standarduppsättningen.

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