Azure Blob 儲存體中的變更摘要支援

變更摘要的目的在於提供您儲存體帳戶中 Blob 和 Blob 中繼資料所發生全部變更的交易記錄。 變更摘要提供這些變更的已 排序保證持久不可變唯讀 記錄。 用戶端應用程式可以在資料流程或批次模式中隨時讀取這些記錄。 每個變更只會產生一個交易記錄項目,因此您不需要針對相同的變更管理多個記錄項目。 變更摘要可讓您建立有效率且可調整的解決方案,以低成本的方式處理 Blob 儲存體帳戶中發生的變更事件。

若要了解如何處理變更摘要中的記錄,請參閱在 Azure Blob 儲存體中處理變更摘要

變更摘要的運作方式

變更摘要記錄會以 Blob 的形式儲存在儲存體帳戶的特殊容器中,標準 Blob 定價成本。 您可以根據需求來控制這些檔案的保留期限 (查看目前版本) 的 條件。 變更事件會附加至變更摘要做為 Apache Avro 格式規格中的記錄:精簡、快速、二進位格式,可使用內嵌架構提供豐富的資料結構。 此格式在 Hadoop 生態系統、串流分析和 Azure Data Factory 中廣泛被使用。

您可以用累加方式或完整方式來處理這些記錄。 任何數目的用戶端應用程式都可以依自己的步調,以平行方式獨立讀取變更摘要。 Apache DrillApache Spark 之類的分析應用程式可以直接取用記錄檔做為 Avro 檔案,讓您以低成本的方式處理這些記錄,並使用高頻寬,而不需要撰寫自訂的應用程式。

下圖顯示如何將記錄新增至變更摘要:

Diagram showing how the change feed works to provide an ordered log of changes to blobs

變更摘要支援非常適合用來根據已變更之物件處理資料的案例。 例如,應用程式可以:

  • 更新次要索引,並與快取、搜尋引擎或任何其他內容管理案例進行同步處理。
  • 根據物件發生的變更,以串流方式或分批模式,擷取商務分析見解和計量。
  • 針對企業資料管理的安全性、合規性或情報,儲存、稽核及分析任何期間的物件變更。
  • 建立解決方案來備份、鏡像或複寫您帳戶中的物件狀態,以進行嚴重損壞管理或合規性。
  • 建立已連線的應用程式管線,以根據已建立或已變更的物件來回應變更事件或排程執行。

變更摘要是區塊 blob 的 物件 複寫和 時間點還原的必要條件功能。

注意

變更摘要可針對 blob 所發生的變更,提供持久、排序的記錄模型。 變更會在變更的幾分鐘內,於變更摘要記錄檔中寫入和提供。 如果您的應用程式必須以更快的速度回應事件,請考慮改為使用Blob 儲存體事件Blob 儲存體事件提供即時一次性事件,可讓您的 Azure Functions 或應用程式快速回應對 Blob 進行的變更。

啟用和停用變更摘要

您必須在儲存體帳戶上啟用變更摘要,才能開始捕獲和記錄變更。 停用變更摘要以停止捕獲變更。 您可以使用入口網站或 PowerShell 上的 Azure Resource Manager 範本來啟用和停用變更。

當您啟用變更摘要時,請記住以下幾點。

  • 每個儲存體帳戶中 Blob 服務只有一個變更摘要。 變更摘要記錄會儲存在 $blobchangefeed 容器中。

  • 建立、更新和刪除變更只會在 blob 服務層級上進行。

  • 變更摘要會針對帳戶中發生的所有可用事件,捕捉 所有 變更。 用戶端應用程式可以視需要篩選出事件種類。 (查看目前版本的條件)。

  • 只有標準的一般用途 v2、premium 區塊 blob 和 Blob 儲存體帳戶可以啟用變更摘要。 目前不支援具有階層命名空間的帳戶。 一般用途 v1 儲存體帳戶不受支援,但可升級至一般用途 v2 而不會有停機時間,如需詳細資訊,請參閱升級至 GPv2 儲存體帳戶

使用 Azure 入口網站,在您的儲存體帳戶上啟用變更摘要:

  1. Azure 入口網站中,選取您的儲存體帳戶。

  2. 在 [資料管理] 下方,瀏覽至 [資料保護] 選項。

  3. 在 [ 追蹤] 底下,選取 [ 啟用 blob 變更摘要]。

  4. 選擇 [儲存] 按鈕以確認您的 [資料保護] 設定

    Screenshot showing how to enable change feed in Azure portal

使用變更摘要

變更摘要會產生數個中繼資料和記錄檔。 這些檔案位於儲存體帳戶的 $blobchangefeed 容器中。 $blobchangefeed 容器可透過 Azure 入口網站或 Azure 儲存體總管來檢視。

您的用戶端應用程式可以使用變更摘要處理器 SDK 隨附的 blob 變更摘要處理器程式庫來取用變更摘要。 若要了解如何處理變更摘要中的記錄,請參閱在 Azure Blob 儲存體中處理變更摘要記錄

變更摘要區段

變更摘要是組織成 每小時區段 的變更記錄,但會每隔幾分鐘附加到並更新。 只有在該小時內發生 blob 變更事件時,才會建立這些區段。 這可讓您的用戶端應用程式使用在特定時間範圍內發生的變更,而不需要搜尋整個記錄。 若要深入瞭解,請參閱 規格

變更摘要的可用每小時區段描述於指定該區段變更摘要檔案路徑的資訊清單檔中。 虛擬目錄的清單 $blobchangefeed/idx/segments/ 會顯示依時間排序的這些區段。 區段的路徑描述區段所代表的每小時時間範圍開始。 您可以使用該清單來篩選出您感興趣的記錄區段。

Name                                                                    Blob Type    Blob Tier      Length  Content Type    
----------------------------------------------------------------------  -----------  -----------  --------  ----------------
$blobchangefeed/idx/segments/1601/01/01/0000/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/22/1810/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/22/1910/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/23/0110/meta.json                  BlockBlob                      584  application/json

注意

$blobchangefeed/idx/segments/1601/01/01/0000/meta.json當您啟用變更摘要時,會自動建立。 您可以放心地忽略此檔案。 它是永遠空白的初始化檔。

區段資訊清單文件 (meta.json) 會顯示 chunkFilePaths 內容中該區段之變更摘要檔案的路徑。 以下是區段資訊清單文件的範例。

{
    "version": 0,
    "begin": "2019-02-22T18:10:00.000Z",
    "intervalSecs": 3600,
    "status": "Finalized",
    "config": {
        "version": 0,
        "configVersionEtag": "0x8d698f0fba563db",
        "numShards": 2,
        "recordsFormat": "avro",
        "formatSchemaVersion": 1,
        "shardDistFnVersion": 1
    },
    "chunkFilePaths": [
        "$blobchangefeed/log/00/2019/02/22/1810/",
        "$blobchangefeed/log/01/2019/02/22/1810/"
    ],
    "storageDiagnostics": {
        "version": 0,
        "lastModifiedTime": "2019-02-22T18:11:01.187Z",
        "data": {
            "aid": "55e507bf-8006-0000-00d9-ca346706b70c"
        }
    }
}

注意

只有在您的帳戶上啟用變更摘要功能之後, $blobchangefeed 才會顯示容器。 您必須在啟用變更摘要之後等候幾分鐘,才能列出容器中的 blob。

變更事件記錄

變更摘要檔案包含一連串的變更事件記錄。 每個變更事件記錄都會對應到個別 blob 的一項變更。 記錄會使用 Apache Avro 格式規格進行序列化並寫入至檔案。 您可以使用 Avro 檔案格式規格來讀取記錄。 有數個程式庫可以用來處理該格式的檔案。

變更摘要檔案會以$blobchangefeed/log/ 形式儲存在虛擬目錄中。 每個路徑下的第一個變更摘要檔案將會有 00000 檔案名 (例如 00000.avro)。 新增至該路徑的每個後續記錄檔的名稱將遞增 1 (例如:00001.avro)。

事件記錄結構描述

如需每個屬性的描述,請參閱適用於 Blob 儲存體的 Azure 事件格線事件結構描述 BlobPropertiesUpdated 和 BlobSnapshotCreated 事件目前僅供變更摘要之用,Blob 儲存體事件尚不支援。

注意

區段的變更摘要檔案不會在建立區段之後立即顯示。 延遲的長度是在變更摘要的正常間隔時間內,也就是變更摘要的幾分鐘內。

結構描述版本 1

下列事件種類可能會在結構描述版本 1 的變更摘要記錄中擷取:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

下列範例顯示 JSON 格式的變更事件記錄使用事件結構描述版本 1:

{
    "schemaVersion": 1,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T12:59:41.4003102Z",
    "id": "322343e3-8020-0000-00fe-233467066726",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "f0270546-168e-4398-8fa8-107a1ac214d2",
        "requestId": "322343e3-8020-0000-00fe-233467000000",
        "etag": "0x8D9F2155CBF7928",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "storageDiagnostics": {
            "bid": "9d725a00-8006-0000-00fe-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

結構描述版本 3

下列事件種類可能會在結構描述版本 3 的變更摘要記錄中擷取:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

下列範例顯示 JSON 格式的變更事件記錄使用事件結構描述版本 3:

{
    "schemaVersion": 3,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:05:19.6798242Z",
    "id": "eefe8fc8-8020-0000-00fe-23346706daaa",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "00c0b6b7-bb67-4748-a3dc-86464863d267",
        "requestId": "eefe8fc8-8020-0000-00fe-233467000000",
        "etag": "0x8D9F216266170DC",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:08:42.4825913Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot": "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "storageDiagnostics": {
            "bid": "9d726370-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

結構描述版本 4

下列事件種類可能會在結構描述版本 4 的變更摘要記錄中擷取:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated
  • RestorePointMarkerCreated

下列範例顯示 JSON 格式的變更事件記錄使用事件結構描述版本 4:

{
    "schemaVersion": 4,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:08:42.4835902Z",
    "id": "ca76bce1-8020-0000-00ff-23346706e769",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "58fbfee9-6cf5-4096-9666-c42980beee65",
        "requestId": "ca76bce1-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2169F42D701",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2022-02-17T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:08:42.4825913Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot": "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "storageDiagnostics": {
            "bid": "9d72687f-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

結構描述版本 5

下列事件種類可能會在結構描述版本 5 的變更摘要記錄中擷取:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated

下列範例顯示 JSON 格式的變更事件記錄使用事件結構描述版本 5:

{
    "schemaVersion": 5,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:12:11.5746587Z",
    "id": "62616073-8020-0000-00ff-233467060cc0",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "b3f9b39a-ae5a-45ac-afad-95ac9e9f2791",
        "requestId": "62616073-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2171BE32588",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2022-02-17T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:12:11.5726507Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot" : "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "blobTagsUpdated": {
            "previous": {
                "Tag1": "Value1_3",
                "Tag2": "Value2_3"
            },
            "current": {
                "Tag1": "Value1_4",
                "Tag2": "Value2_4"
            }
        },
        "restorePointMarker": {
            "rpi": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpp": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpl": "test-restore-label",
            "rpt": "2022-02-17T13:56:09.3559772Z"
        },
        "storageDiagnostics": {
            "bid": "9d726db1-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

結構描述版本 6

下列事件種類可能會在結構描述版本 6 的變更摘要記錄中擷取:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated

結構描述版本 6 增加了對極非經常性存取層的支援。

下列範例顯示 JSON 格式的變更事件記錄使用事件結構描述版本 6:

{
    "schemaVersion": 6,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2023-10-11T13:12:11.5746587Z",
    "id": "62616073-8020-0000-00ff-233467060cc0",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "b3f9b39a-ae5a-45ac-afad-95ac9e9f2791",
        "requestId": "62616073-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2171BE32588",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2023-10-11T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2023-10-11T13:12:11.5726507Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2023-10-11T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot" : "2023-10-11T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "blobTagsUpdated": {
            "previous": {
                "Tag1": "Value1_3",
                "Tag2": "Value2_3"
            },
            "current": {
                "Tag1": "Value1_4",
                "Tag2": "Value2_4"
            }
        },
        "restorePointMarker": {
            "rpi": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpp": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpl": "test-restore-label",
            "rpt": "2023-10-11T13:56:09.3559772Z"
        },
        "storageDiagnostics": {
            "bid": "9d726db1-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

規格

  • 變更事件記錄只會附加至變更摘要。 附加這些記錄之後,這些記錄是不可變的,且記錄位置是穩定的。 用戶端應用程式可以在變更摘要的讀取位置上維護自己的檢查點。

  • 變更事件記錄會在變更的幾分鐘內附加。 用戶端應用程式可以選擇在附加記錄以進行串流存取,或在任何其他時間進行大量使用記錄。

  • 變更事件記錄依 每個 blob的修改順序排序。 Azure Blob 儲存體中未定義跨 blob 的變更順序。 前一個區段中的所有變更都是在後續區段的任何變更之前。

  • 變更事件記錄會使用 Apache Avro 1.8.2 格式規格序列化到記錄檔中。

  • 變更的事件記錄,其中的 eventTypeControl 為內部系統記錄,而且不會反映您帳戶中物件的變更。 您可以放心地忽略這些記錄。

  • 屬性包中 storageDiagnostics 的值僅供內部使用,不適用於您的應用程式。 您的應用程式不應對該資料具有契約相依性。 您可以放心地忽略這些屬性。

  • 區段表示的時間 大約 是15分鐘的界限。 因此,若要確保在指定的時間內使用所有記錄,請取用連續和下一個小時的區段。

  • 由於記錄資料流程的內部資料分割可管理發佈輸送量,因此每個區段可能會有不同的數目的 chunkFilePaths。 每個 chunkFilePath 記錄檔中的記錄檔都可保證包含互斥的 blob,而且可以平行取用和處理,而不會在反復專案期間違反每個 blob 的修改順序。

  • 區段開始 Publishing 狀態。 將記錄附加到區段之後,將會是 Finalized。 在檔案中 LastConsumable 的屬性日期 $blobchangefeed/meta/Segments.json 之後的任何區段中,記錄檔不應由您的應用程式使用。 以下是檔案中 LastConsumable 的屬性範例 $blobchangefeed/meta/Segments.json

{
    "version": 0,
    "lastConsumable": "2019-02-23T01:10:00.000Z",
    "storageDiagnostics": {
        "version": 0,
        "lastModifiedTime": "2019-02-23T02:24:00.556Z",
        "data": {
            "aid": "55e551e3-8006-0000-00da-ca346706bfe4",
            "lfz": "2019-02-22T19:10:00.000Z"
        }
    }
}

條件與已知問題

本節說明目前版本之變更摘要的已知問題和條件。

  • 如果您為您的儲存體帳戶啟用防火牆規則,則刪除 $blobchangefeed 容器內的 Blob 的生命週期管理要求可能會被封鎖。 您可以藉由為受信任的 Microsoft 服務提供例外狀況來解除封鎖這些要求。 如需詳細資訊,請參閱設定防火牆和虛擬網路中的<例外狀況>一節。
  • LastConsumable區段的屬性不會列出變更摘要所完成的第一個區段。 只有在第一個區段完成後,才會發生此問題。 第一個小時之後的所有後續區段都會正確地在屬性中 LastConsumable 捕捉。
  • 您目前在呼叫 ListContainers API 時看不到 $blobchangefeed 容器。 您可以直接在 $blobchangefeed 容器上呼叫 ListBlobs API 來查看內容。
  • 已啟用變更摘要的異地備援儲存體帳戶的儲存體帳戶的儲存體帳戶容錯移轉可能會導致變更摘要記錄與 Blob 資料和/或中繼資料之間不一致。 如需這類不一致的詳細資訊,請參閱變更摘要和 Blob 資料不一致
  • 您可能會看到 $blobchangefeed$blobchangefeedsys 容器上報告的 404 (找不到) 和 412 (先決條件失敗) 的錯誤。 您可以放心地忽略這些錯誤。
  • 刪除 Blob 版本或快照集時,不會產生 BlobDeleted 事件。 只有在刪除基底 (root) Blob 時才會新增 BlobDeleted 事件。
  • 只會針對因對 Blob 服務端點 (blob.core.windows.net) 的要求而導致的 Blob 變更,新增事件記錄。 因對 Data Lake Storage 端點 (dfs.core.windows.net) 的要求而導致的變更不會被記錄,也不會出現在變更摘要記錄中。

常見問題集 (FAQ)

請參閱變更摘要支援常見問題

功能支援

啟用 Data Lake Storage Gen2、網路檔案系統 (NFS) 3.0 通訊協定,或 SSH 檔案傳輸通訊協定 (SFTP),可能會影響到此功能的支援。 如果您已啟用上述任何功能,請參閱 Azure 儲存體帳戶中的 Blob 儲存體功能支援,以評估此功能的支援。