Delen via


Momentopname

Momentopnameresource is niet beschikbaar in API-versie 1.0.

Een momentopname is een resource die uniek is geïdentificeerd op basis van de naam. Zie de details voor elke bewerking.

Operations

  • Ophalen
  • Meerdere lijsten weergeven
  • Maken
  • Archiveren/herstellen
  • Sleutelwaarden vermelden

Vereisten

Syntaxis

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

Momentopname ophalen

Vereist: {name}, {api-version}

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

Reacties:

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
}

Als er geen momentopname met de opgegeven naam bestaat, wordt het volgende antwoord geretourneerd:

HTTP/1.1 404 Not Found

Ophalen (voorwaardelijk)

Gebruik of If-None-Match aanvraagheaders om de cache van If-Match clients te verbeteren. Het etag argument maakt deel uit van de weergave van de momentopname. Zie sectie 14.24 en 14.26 voor meer informatie.

Met de volgende aanvraag wordt de momentopname alleen opgehaald als de huidige weergave niet overeenkomt met de opgegeven etag:

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

Reacties:

HTTP/1.1 304 NotModified

Or

HTTP/1.1 200 OK

Momentopnamen weergeven

Optioneel: name (Als dit niet is opgegeven, impliceert dit een naam.) Optioneel: status (Als dit niet is opgegeven, impliceert dit een status.)

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

Antwoord:

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

Zie de sectie Filteren verderop in dit artikel voor meer opties.

Paginering

Het resultaat wordt gepagineerd als het aantal geretourneerde items de antwoordlimiet overschrijdt. Volg de optionele Link antwoordheaders en gebruik rel="next" deze voor navigatie. De inhoud biedt ook een volgende koppeling in de vorm van de @nextLink eigenschap. De gekoppelde URI bevat het api-version argument.

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

Antwoord:

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

Filteren

Een combinatie van name en status filteren wordt ondersteund. Gebruik de optionele name parameters en status queryreeksparameters.

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

Ondersteunde filters

Naamfilter Effect
name wordt weggelaten of name=* Komt overeen met momentopnamen met een willekeurige naam
name=abc Komt overeen met een momentopname met de naam abc
name=abc* Komt overeen met momentopnamen met namen die beginnen met abc
name=abc,xyz Komt overeen met momentopnamen met namen abc of xyz (beperkt tot 5 CSV)
Statusfilter Effect
status wordt weggelaten of status=* Komt overeen met momentopnamen met een status
status=ready Komt overeen met momentopnamen met een gereede status
status=ready,archived Komt overeen met momentopnamen met de status Gereed of Gearchiveerd (beperkt tot 5 CSV)

Gereserveerde tekens

*, , \,

Als een gereserveerd teken deel uitmaakt van de waarde, moet deze worden ontsnapt met behulp van \{Reserved Character}. Niet-gereserveerde tekens kunnen ook worden ontsnapt.

Filtervalidatie

Als de filtervalidatie mislukt, is het antwoord HTTP 400 met foutdetails:

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
}

Voorbeelden

  • Alle

    GET /snapshots?api-version={api-version}
    
  • Naam van momentopname begint met abc

    GET /snapshot?name=abc*&api-version={api-version}
    
  • De naam van de momentopname begint met abc en de status is gelijk aan gereed of gearchiveerd

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

Specifieke velden aanvragen

Gebruik de optionele $select queryreeksparameter en geef een door komma's gescheiden lijst met aangevraagde velden op. Als de $select parameter wordt weggelaten, bevat het antwoord de standaardset.

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

Momentopname maken

parameters

Eigenschapsnaam Vereist Default value Validatie
naam ja n.v.t. Lengte
     Maximum: 256
filters ja n.v.t. Tellen
     Minimum: 1
     Maximum: 3
filters[<index>].key ja n.v.t.
filters[<index>].label nee Nul Labelfilters met meerdere overeenkomsten (bijvoorbeeld: '*', 'komma', 'gescheiden') worden niet ondersteund met het samenstellingstype 'sleutel'.
tags nee {}
composition_type nee sleutel
retention_period nee Standard-laag
     2592000 (30 dagen)
Gratis laag
     604800 (zeven dagen)
Standard-laag
     Minimaal: 3600 (één uur)
     Maximum: 7776000 (90 dagen)
Gratis laag
     Minimaal: 3600 (één uur)
     Maximum: 604800 (zeven dagen)
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
}

Reacties:

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
}
Eigenschapsnaam Vereist Default value Validatie
naam ja n.v.t. Lengte
     Maximum: 256
filters ja n.v.t. Tellen
     Minimum: 1
     Maximum: 3
filters[<index>].key ja n.v.t.
filters[<index>].label nee Nul Labelfilters met meerdere overeenkomsten (bijvoorbeeld: '*', 'komma', 'gescheiden') worden niet ondersteund met het samenstellingstype 'sleutel'.
filters[<index>].tags nee Nul Tellen
     Minimum: 0
     Maximum: 5
tags nee {}
composition_type nee sleutel
retention_period nee Standard-laag
     2592000 (30 dagen)
Gratis laag
     604800 (7 dagen)
Standard-laag
     Minimum: 3600 (1 uur)
     Maximum: 7776000 (90 dagen)
Gratis laag
     Minimum: 3600 (1 uur)
     Maximum: 604800 (7 dagen)
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
}

Reacties:

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
}

De status van de zojuist gemaakte momentopname is provisioning. Zodra de momentopname volledig is ingericht, wordt de status bijgewerkt naar ready. Clients kunnen de momentopname peilen om te wachten tot de momentopname gereed is voordat de bijbehorende sleutelwaarden worden vermeld. Als u aanvullende informatie over de bewerking wilt opvragen, raadpleegt u de sectie voor het maken van een polling-momentopname.

Als de momentopname al bestaat, wordt het volgende antwoord geretourneerd:

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

Momentopname maken van polling

Het antwoord van een aanvraag voor het maken van een momentopname retourneert een Operation-Location header.

Reacties:

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

De status van de inrichtingsbewerking voor momentopnamen vindt u op de URI in Operation-Location. Clients kunnen dit statusobject peilen om ervoor te zorgen dat een momentopname wordt ingericht voordat de bijbehorende sleutelwaarden worden vermeld.

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

Antwoord:

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

Als er een fout optreedt tijdens het inrichten van de momentopname, bevat de error eigenschap details over de fout.

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

Archiveren (patch)

Een momentopname in de ready status kan worden gearchiveerd. Aan een gearchiveerde momentopname wordt een vervaldatum toegewezen op basis van de bewaarperiode die is ingesteld op het moment dat de momentopname is gemaakt. Nadat de vervaldatum is verstreken, wordt de momentopname definitief verwijderd. Op elk gewenst moment vóór de vervaldatum kunnen de items van de momentopname nog steeds worden weergegeven.

Het archiveren van een momentopname die al archived geen invloed heeft op de momentopname.

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

Antwoord: de gearchiveerde momentopname retourneren

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

Het archiveren van een momentopname die zich momenteel in de provisioning status bevindt failed , is een ongeldige bewerking.

Antwoord:

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
}

Herstellen (patch)

Een momentopname in de archived status kan worden hersteld. Nadat de momentopname is hersteld, wordt de vervaldatum van de momentopname verwijderd.

Het herstellen van een momentopname die al ready geen invloed heeft op de momentopname.

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

Antwoord: de herstelde momentopname retourneren

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

Het herstellen van een momentopname die zich momenteel in de provisioning of failed status bevindt, is een ongeldige bewerking.

Antwoord:

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
}

Momentopname archiveren/herstellen (voorwaardelijk)

Gebruik of If-None-Match aanvraagheaders om racevoorwaarden If-Match te voorkomen. Het etag argument maakt deel uit van de weergave van de momentopname. Als If-Match of If-None-Match worden weggelaten, is de bewerking onvoorwaardelijke.

Met het volgende antwoord wordt de resource alleen bijgewerkt als de huidige weergave overeenkomt met de opgegeven etag:

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

Met het volgende antwoord wordt de resource alleen bijgewerkt als de huidige weergave niet overeenkomt met de opgegeven etag:

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

Antwoorden

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

Or

HTTP/1.1 412 PreconditionFailed

Sleutelwaarden voor momentopnamen weergeven

Vereist: {name}, {api-version}

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

Notitie

Als u probeert de items weer te geven van een momentopname die zich niet in de ready status archived bevindt, resulteert dit in een leeg lijstantwoord.

Specifieke velden aanvragen

Gebruik de optionele $select queryreeksparameter en geef een door komma's gescheiden lijst met aangevraagde velden op. Als de $select parameter wordt weggelaten, bevat het antwoord de standaardset.

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