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
- Alle HTTP-aanvragen moeten worden geverifieerd. Zie de sectie Verificatie .
- Alle HTTP-aanvragen moeten expliciet
api-version
worden opgegeven. Zie de sectie versiebeheer .
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