Aracılığıyla paylaş


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-versionsağ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 etagile 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 readygü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-Locationbulunabilir. İ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 etagile 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 etagile 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