Anlık Görüntü
Anlık görüntü kaynağı API sürüm 1.0'da kullanılamaz.
Anlık görüntü, adıyla benzersiz olarak tanımlanan bir kaynaktır. Her işlemin ayrıntılarına bakın.
Operations
- Al
- Birden çok listele
- Oluşturma
- Arşivle/Kurtar
- Anahtar-değerleri listeleme
Önkoşullar
- Tüm HTTP isteklerinin kimliği doğrulanmalıdır. Kimlik doğrulama bölümüne bakın.
- Tüm HTTP istekleri açık
api-version
sağlamalıdır. Sürüm oluşturma bölümüne bakın.
Sözdizimi
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>]
}
Anlık görüntü alma
Gerekli: {name}
, {api-version}
GET /snapshots/{name}?api-version={api-version}
Yanıt:
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
}
Sağlanan ada sahip bir anlık görüntü yoksa aşağıdaki yanıt döndürülür:
HTTP/1.1 404 Not Found
Get (koşullu)
İstemci önbelleğini geliştirmek için üst bilgileri kullanın If-Match
veya If-None-Match
isteyin. etag
bağımsız değişkeni anlık görüntü gösteriminin bir parçasıdır. Daha fazla bilgi için 14.24 ve 14.26 bölümlerine bakın.
Aşağıdaki istek anlık görüntüyü yalnızca geçerli gösterim belirtilen etag
ile eşleşmiyorsa alır:
GET /snapshot/{name}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "{etag}"
Yanıt:
HTTP/1.1 304 NotModified
Or
HTTP/1.1 200 OK
Anlık görüntüleri listeleme
İsteğe bağlı: name
(Belirtilmezse herhangi bir ad anlamına gelir.) İsteğe bağlı: status
(Belirtilmezse, herhangi bir durum anlamına gelir.)
GET /snapshots?name=prod-*&api-version={api-version} HTTP/1.1
Yanıt:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshotset+json; charset=utf-8
Diğer seçenekler için bu makalenin devamında yer alan "Filtreleme" bölümüne bakın.
Sayfalandırma
Döndürülen öğe sayısı yanıt sınırını aşarsa sonuç sayfalanır. İsteğe bağlı Link
yanıt üst bilgilerini izleyin ve gezinti için kullanın rel="next"
.
Alternatif olarak, içerik özelliği biçiminde @nextLink
bir sonraki bağlantı sağlar. Bağlı URI bağımsız değişkenini api-version
içerir.
GET /snapshots?api-version={api-version} HTTP/1.1
Yanıt:
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}"
}
Filtreleme
ve filtrelemenin name
status
bir bileşimi desteklenir.
İsteğe bağlı name
ve status
sorgu dizesi parametrelerini kullanın.
GET /snapshots?name={name}&status={status}&api-version={api-version}
Desteklenen filtreler
Ad filtresi | Etki |
---|---|
name atlanıyor veya name=* |
Anlık görüntüleri herhangi bir adla eşleştirir |
name=abc |
abc adlı bir anlık görüntüyle eşleşir |
name=abc* |
Anlık görüntüleri abc ile başlayan adlarla eşleştirir |
name=abc,xyz |
Anlık görüntüleri abc veya xyz adlarıyla eşleştirir (5 CSV ile sınırlıdır) |
Durum filtresi | Etki |
---|---|
status atlanıyor veya status=* |
Anlık görüntüleri herhangi bir durumla eşleştirir |
status=ready |
Anlık görüntüleri hazır durumda eşleştirir |
status=ready,archived |
Hazır veya arşivlenmiş durumdaki anlık görüntüleri eşleştirir (5 CSV ile sınırlıdır) |
Ayrılmış karakterler
*
, \
, ,
Ayrılmış karakter değerin bir parçasıysa, kullanılarak \{Reserved Character}
kaçış karakteri kullanılmalıdır. Rezerve edilmeyen karakterler de kaçılabilir.
Filtre doğrulama
Filtre doğrulaması başarısız olursa yanıt, hata ayrıntılarıyla HTTP 400
olur:
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
}
Örnekler
Tümü
GET /snapshots?api-version={api-version}
Anlık görüntü adı abc ile başlar
GET /snapshot?name=abc*&api-version={api-version}
Anlık görüntü adı abc ile başlar ve durum eşittir hazır veya arşivlenmiş
GET /snapshot?name=abc*&status=ready,archived&api-version={api-version}
Belirli alanlar isteme
İsteğe bağlı $select
sorgu dizesi parametresini kullanın ve istenen alanların virgülle ayrılmış listesini sağlayın. $select
Parametresi atlanırsa, yanıt varsayılan kümeyi içerir.
GET /snapshot?$select=name,status&api-version={api-version} HTTP/1.1
Anlık görüntü oluştur
parametreler
Özellik Adı | Zorunlu | Default value | Doğrulama |
---|---|---|---|
Adı | evet | yok | Uzunluk Maksimum: 256 |
filtreler | evet | yok | Saymak En Az: 1 Maksimum: 3 |
filters[<index>].key | evet | yok | |
filters[<index>].label | hayır | boş | Çok eşleşmeli etiket filtreleri (örneğin: "*", "virgül,ayrılmış") 'anahtar' oluşturma türüyle desteklenmez. |
tags | hayır | {} | |
composition_type | hayır | anahtar | |
retention_period | hayır | Standart katman 2592000 (30 gün) Ücretsiz katman 604800 (yedi gün) |
Standart katman Minimum: 3600 (bir saat) Maksimum: 7776000 (90 gün) Ücretsiz katman Minimum: 3600 (bir saat) Maksimum: 604800 (yedi gün) |
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
}
Yanıt:
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
}
Özellik Adı | Zorunlu | Default value | Doğrulama |
---|---|---|---|
Adı | evet | yok | Uzunluk Maksimum: 256 |
filtreler | evet | yok | Saymak En Az: 1 Maksimum: 3 |
filters[<index>].key | evet | yok | |
filters[<index>].label | hayır | boş | Çok eşleşmeli etiket filtreleri (örneğin: "*", "virgül,ayrılmış") 'anahtar' oluşturma türüyle desteklenmez. |
filters[<index>].tags | hayır | boş | Saymak Minimum: 0 Maksimum: 5 |
tags | hayır | {} | |
composition_type | hayır | anahtar | |
retention_period | hayır | Standart katman 2592000 (30 gün) Ücretsiz katman 604800 (7 gün) |
Standart katman Minimum: 3600 (1 saat) Maksimum: 7776000 (90 gün) Ücretsiz katman Minimum: 3600 (1 saat) Maksimum: 604800 (7 gün) |
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
}
Yanıt:
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
}
Yeni oluşturulan anlık görüntünün durumu şeklindedir provisioning
.
Anlık görüntü tam olarak sağlandıktan sonra durum olarak ready
güncelleştirilir.
İstemciler anlık görüntüyü yoklayabilir ve ilişkili anahtar değerlerini listelemeden önce anlık görüntünün hazır olmasını bekleyebilir.
İşlem hakkında ek bilgileri sorgulamak için yoklama anlık görüntüsü oluşturma bölümüne başvurun.
Anlık görüntü zaten varsa, aşağıdaki yanıt döndürülür:
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": ""
}
Yoklama anlık görüntüsü oluşturma
Anlık görüntü oluşturma isteğinin yanıtı bir Operation-Location
üst bilgi döndürür.
Yanıt:
HTTP/1.1 201 Created
...
Operation-Location: {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
Anlık görüntü sağlama işleminin durumu, içinde bulunan URI'de Operation-Location
bulunabilir.
İstemciler, ilişkili anahtar değerlerini listelemeden önce anlık görüntünün sağlandığından emin olmak için bu durum nesnesini yoklayabilir.
GET {appConfigurationEndpoint}/operations?snapshot={name}&api-version={api-version}
Yanıt:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"id": "{id}",
"status": "Succeeded",
"error": null
}
Anlık görüntünün sağlanması sırasında herhangi bir hata oluşursa, error
özelliği hatayı açıklayan ayrıntıları içerir.
{
"id": "{name}",
"status": "Failed",
"error": {
"code": "QuotaExceeded",
"message": "The allotted quota for snapshot creation has been surpassed."
}
}
Arşiv (Yama)
Durumundaki ready
bir anlık görüntü arşivlenebilir.
Arşivlenmiş anlık görüntüye, oluşturulduğu sırada oluşturulan saklama süresine göre bir son kullanma tarihi atanır.
Son kullanma tarihi geçtikten sonra anlık görüntü kalıcı olarak silinir.
Son kullanma tarihinden önce herhangi bir zamanda anlık görüntünün öğeleri yine listelenebilir.
Zaten archived
olan bir anlık görüntünün arşivlenmesi anlık görüntüyü etkilemez.
- Gerekli:
{name}
,{status}
,{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "archived"
}
Yanıt: Arşivlenmiş anlık görüntüyü döndürme
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"
}
Şu anda veya failed
durumunda provisioning
olan bir anlık görüntünün arşivlenmesi geçersiz bir işlemdir.
Yanıt:
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
}
Kurtarma (Düzeltme Eki)
Durumdaki archived
bir anlık görüntü kurtarılabilir.
Anlık görüntü kurtarıldıktan sonra anlık görüntünün son kullanma tarihi kaldırılır.
Zaten ready
olan bir anlık görüntünün kurtarılması anlık görüntüyü etkilemez.
- Gerekli:
{name}
,{status}
,{api-version}
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
{
"status": "ready"
}
Yanıt: Kurtarılan anlık görüntüyü döndürme
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
{
"etag": "90dd86e2885440f3af9398ca392095b9",
"name": "{name}",
"status": "ready",
...
}
Şu anda veya failed
durumunda provisioning
olan bir anlık görüntünün kurtarılması geçersiz bir işlemdir.
Yanıt:
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
}
Anlık görüntüyü arşivle/kurtar (koşullu olarak)
Yarış koşullarını önlemek için üst bilgileri kullanın If-Match
veya If-None-Match
isteyin. etag
bağımsız değişkeni anlık görüntü gösteriminin bir parçasıdır.
If-None-Match
Veya If-Match
atlanırsa, işlem koşulsuz olur.
Aşağıdaki yanıt, yalnızca geçerli gösterim belirtilen etag
ile eşleşiyorsa kaynağı güncelleştirir:
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
Aşağıdaki yanıt, kaynağı yalnızca geçerli gösterim belirtilen etag
ile eşleşmiyorsa güncelleştirir:
PATCH /snapshots/{name}?api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.snapshot+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
Yanıtlar
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.snapshot+json; charset=utf-8
...
Or
HTTP/1.1 412 PreconditionFailed
Anlık görüntü anahtar değerlerini listeleme
Gerekli: {name}
, {api-version}
GET /kv?snapshot={name}&api-version={api-version}
Not
veya archived
durumunda olmayan ready
bir anlık görüntünün öğelerini listelemeye çalışmak boş bir liste yanıtına neden olur.
Belirli alanlar isteme
İsteğe bağlı $select
sorgu dizesi parametresini kullanın ve istenen alanların virgülle ayrılmış listesini sağlayın. $select
Parametresi atlanırsa, yanıt varsayılan kümeyi içerir.
GET /kv?snapshot={name}&$select=key,value&api-version={api-version} HTTP/1.1