Sdílet prostřednictvím


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

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