本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列步驟說明如何使用 EBS 直接 API 讀取快照:
-
使用 ListSnapShotBlock 動作可檢視快照中區塊的所有區塊索引和區塊標記。或者,使用 ListChangedBlock 動作,只檢視相同磁碟區的兩個快照和快照歷程之間不同的區塊索引和區塊標記。這些動作可協助您識別您可能想要取得資料的區塊標記和區塊索引。
-
使用 GetSnapshotBlock 動作,並指定要取得資料之區塊的區塊索引和區塊標記。
注意
您無法將 EBS 直接 APIs與封存的快照搭配使用。
下列範例示範如何使用 EBS 直接 API 讀取快照。
列出快照中的區塊
下列 list-snapshot-blockssnap-0987654321
。--starting-block-index
參數會將結果限制為封鎖大於 1000
的索引,並且 --max-results
參數會將結果限制在第一個 100
區塊。
aws ebs list-snapshot-blocks --snapshot-id
snap-0987654321
--starting-block-index1000
--max-results100
下列前一個命令的範例回應會列出快照中的區塊索引和區塊標記。使用 get-snapshot-block
命令並指定要取得資料之區塊的區塊索引和區塊標記。區塊標記在列出的到期時間之前都有效。
{
"Blocks": [
{
"BlockIndex": 1001,
"BlockToken": "AAABAV3/PNhXOynVdMYHUpPsetaSvjLB1dtIGfbJv5OJ0sX855EzGTWos4a4"
},
{
"BlockIndex": 1002,
"BlockToken": "AAABATGQIgwr0WwIuqIMjCA/Sy7e/YoQFZsHejzGNvjKauzNgzeI13YHBfQB"
},
{
"BlockIndex": 1007,
"BlockToken": "AAABAZ9CTuQtUvp/dXqRWw4d07eOgTZ3jvn6hiW30W9duM8MiMw6yQayzF2c"
},
{
"BlockIndex": 1012,
"BlockToken": "AAABAQdzxhw0rVV6PNmsfo/YRIxo9JPR85XxPf1BLjg0Hec6pygYr6laE1p0"
},
{
"BlockIndex": 1030,
"BlockToken": "AAABAaYvPax6mv+iGWLdTUjQtFWouQ7Dqz6nSD9L+CbXnvpkswA6iDID523d"
},
{
"BlockIndex": 1031,
"BlockToken": "AAABATgWZC0XcFwUKvTJbUXMiSPg59KVxJGL+BWBClkw6spzCxJVqDVaTskJ"
},
...
],
"ExpiryTime": 1576287332.806,
"VolumeSize": 32212254720,
"BlockSize": 524288
}
列出兩個快照之間不同的區塊
製作分頁要求列出兩個快照之間不同的區塊時,請謹記下列事項:
-
回應可以包含一個或多個空
ChangedBlocks
陣列。例如:-
快照 1:區塊索引編號
0
-999
的 1000 個區塊的完整快照。 -
快照 2:僅包含一個變更區塊 (區塊索引編號
999
) 的增量快照。
列出這些具有
StartingBlockIndex = 0
和MaxResults = 100
之快照的變更區塊會傳回ChangedBlocks
的空陣列。您必須使用nextToken
要求剩餘結果,直到在第十個結果集中傳回變更區塊,結果集會包括區塊索引編號900
-999
的區塊。 -
-
回應可以略過快照中未寫入的區塊。例如:
-
快照 1:區塊索引編號
2000
-2999
的 1000 個區塊的完整快照。 -
快照 2:僅包含一個變更區塊 (區塊索引編號
2000
) 的增量快照。
列出這些具有
StartingBlockIndex = 0
和MaxResults = 100
之快照的變更區塊時,回應會略過索引編號0
-1999
的區塊,並且包括索引編號2000
的區塊。回應將不會包含空ChangedBlocks
陣列。 -
下列 list-changed-blockssnap-1234567890
和 snap-0987654321
之間不同的區塊索引和區塊標記。--starting-block-index
參數會將結果限制為封鎖大於 0
的索引,並且 --max-results
參數會將結果限制在第一個 500
區塊。
aws ebs list-changed-blocks --first-snapshot-id
snap-1234567890
--second-snapshot-idsnap-0987654321
--starting-block-index0
--max-results500
下列前一個命令的範例回應會顯示出區塊索引 0、6000、6001、6002 和 6003 在兩個快照之間並不同。此外,區塊索引 6001、6002 和 6003 只存在於指定的第一個快照 ID 中,而不存在於第二個快照 ID 中,因為回應中沒有列出第二個區塊標記。
使用 get-snapshot-block
命令並指定要取得資料之區塊的區塊索引和區塊標記。區塊標記在列出的到期時間之前都有效。
{
"ChangedBlocks": [
{
"BlockIndex": 0,
"FirstBlockToken": "AAABAVahm9SO60Dyi0ORySzn2ZjGjW/KN3uygGlS0QOYWesbzBbDnX2dGpmC",
"SecondBlockToken": "AAABAf8o0o6UFi1rDbSZGIRaCEdDyBu9TlvtCQxxoKV8qrUPQP7vcM6iWGSr"
},
{
"BlockIndex": 6000,
"FirstBlockToken": "AAABAbYSiZvJ0/R9tz8suI8dSzecLjN4kkazK8inFXVintPkdaVFLfCMQsKe",
"SecondBlockToken": "AAABAZnqTdzFmKRpsaMAsDxviVqEI/3jJzI2crq2eFDCgHmyNf777elD9oVR"
},
{
"BlockIndex": 6001,
"FirstBlockToken": "AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR"
},
{
"BlockIndex": 6002,
"FirstBlockToken": "AAABASqX4/NWjvNceoyMUljcRd0DnwbSwNnes1UkoP62CrQXvn47BY5435aw"
},
{
"BlockIndex": 6003,
"FirstBlockToken": "AAABASmJ0O5JxAOce25rF4P1sdRtyIDsX12tFEDunnePYUKOf4PBROuICb2A"
},
...
],
"ExpiryTime": 1576308931.973,
"VolumeSize": 32212254720,
"BlockSize": 524288,
"NextToken": "AAADARqElNng/sV98CYk/bJDCXeLJmLJHnNSkHvLzVaO0zsPH/QM3Bi3zF//O6Mdi/BbJarBnp8h"
}
從快照取得區塊資料
下面的 get-snapshot-block6001
的區塊索引 AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR
中的資料,位於快照 snap-1234567890
中。二進位資料將輸出到 Windows 電腦上 data
目錄中的 C:\Temp
檔案。如果您在 Linux 或 Unix 電腦上執行命令,請將輸出路徑取代為 /tmp/data
以將資料輸出至 data
目錄中的 /tmp
檔案。
aws ebs get-snapshot-block --snapshot-id
snap-1234567890
--block-index6001
--block-tokenAAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR
C:/Temp/data
下列前一個命令的範例回應會顯示傳回的資料大小、用來驗證資料的檢查總和,以及檢查總和的演算法。二進位資料會自動儲存到您在請求命令中指定的目錄和檔案。
{
"DataLength": "524288",
"Checksum": "cf0Y6/Fn0oFa4VyjQPOa/iD0zhTflPTKzxGv2OKowXc=",
"ChecksumAlgorithm": "SHA256"
}