Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schreiben Sie EBS Amazon-Snapshots mit Direct EBS APIs
In den folgenden Schritten wird beschrieben, wie Sie mit EBS Direct APIs inkrementelle Snapshots schreiben können:
-
Verwenden Sie die StartSnapshot Aktion und geben Sie eine übergeordnete Snapshot-ID an, um einen Snapshot als inkrementellen Snapshot eines vorhandenen Snapshots zu starten, oder lassen Sie die übergeordnete Snapshot-ID weg, um einen neuen Snapshot zu starten. Diese Aktion gibt die neue Snapshot-ID zurück, die sich im Status „Ausstehend“ befindet.
-
Verwenden Sie die PutSnapshotBlock Aktion und geben Sie die ID des ausstehenden Snapshots an, um ihm Daten in Form von einzelnen Blöcken hinzuzufügen. Sie müssen eine Base64-kodierte SHA256 Prüfsumme für den übertragenen Datenblock angeben. Der Dienst berechnet die Prüfsumme der empfangenen Daten und validiert sie mit der angegebenen Prüfsumme. Die Aktion schlägt fehl, wenn die Prüfsummen nicht übereinstimmen.
-
Wenn Sie mit dem Hinzufügen von Daten zum ausstehenden Snapshot fertig sind, verwenden Sie die CompleteSnapshot Aktion, um einen asynchronen Workflow zu starten, der den Snapshot versiegelt und in den Status „Abgeschlossen“ versetzt.
Wiederholen Sie diese Schritte, um einen neuen inkrementellen Snapshot mit dem zuvor erstellten Snapshot als übergeordneter Snapshot zu erstellen.
Im folgenden Diagramm ist Snapshot A beispielsweise der erste neue Snapshot, der gestartet wurde. Snapshot A wird als übergeordneter Snapshot zum Starten von Snapshot B verwendet. Snapshot B wird als übergeordneter Snapshot zum Starten und Erstellen von Snapshots C verwendet. Snapshots A, B und C sind inkrementelle Snapshots. Snapshot A wird verwendet, um EBS Volume 1 zu erstellen. Snapshot D wird aus EBS Volume 1 erstellt. Snapshot D ist ein inkrementeller Snapshot von A; es handelt sich nicht um einen inkrementellen Snapshot von B oder C.
Die folgenden Beispiele zeigen, wie Snapshots mit Direct geschrieben werden. EBS APIs
Starten eines Snapshots
- AWS CLI
-
Der folgende Beispielbefehl start-Snapshot startet einen 8
-GiB-Snapshot, wobei der Snapshot snap-123EXAMPLE1234567
als übergeordneter Snapshot verwendet wird. Der neue Snapshot ist ein inkrementeller Snapshot des übergeordneten Snapshots. Der Snapshot wird in einen Fehlerzustand verschoben, wenn innerhalb des angegebenen Timeout-Zeitraums von 60
Minuten keine Einfüge- oder Abschlussanforderungen für den Snapshot gesendet werden. Das Client-Token 550e8400-e29b-41d4-a716-446655440000
stellt Idempotenz für die Anforderung sicher. Wenn das Client-Token weggelassen wird, generiert es AWS SDK automatisch eines für Sie. Weitere Informationen zur Idempotenz finden Sie unter StartSnapshot APIStellen Sie die Idempotenz in Anfragen sicher.
aws ebs start-snapshot --volume-size 8
--parent-snapshot snap-123EXAMPLE1234567
--timeout 60
--client-token 550e8400-e29b-41d4-a716-446655440000
Die folgende Beispielantwort für den vorherigen Befehl zeigt die Snapshot-ID, die AWS
-Konto-ID, den Status, die Volume-Größe in GiB und die Größe der Blöcke im Snapshot. Der Snapshot wird im Zustand pending
gestartet. Geben Sie die Snapshot-ID in nachfolgenden put-snapshot-block
-Befehlen an, um Daten in den Snapshot zu schreiben. Verwenden Sie anschließend den Befehl complete-snapshot
, um den Snapshot abzuschließen und den Status in completed
zu ändern.
{
"SnapshotId": "snap-0aaEXAMPLEe306d62",
"OwnerId": "111122223333",
"Status": "pending",
"VolumeSize": 8,
"BlockSize": 524288
}
- AWS API
-
Die folgende StartSnapshotBeispielanforderung startet einen 8
GiB-Snapshot, wobei der Snapshot snap-123EXAMPLE1234567
als übergeordneter Snapshot verwendet wird. Der neue Snapshot ist ein inkrementeller Snapshot des übergeordneten Snapshots. Der Snapshot wird in einen Fehlerzustand verschoben, wenn innerhalb des angegebenen Timeout-Zeitraums von 60
Minuten keine Einfüge- oder Abschlussanforderungen für den Snapshot gesendet werden. Das Client-Token 550e8400-e29b-41d4-a716-446655440000
stellt Idempotenz für die Anforderung sicher. Wenn das Client-Token weggelassen wird, generiert es AWS SDK automatisch eines für Sie. Weitere Informationen zur Idempotenz finden Sie unter StartSnapshot APIStellen Sie die Idempotenz in Anfragen sicher.
POST /snapshots HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T040724Z
Authorization: <Authentication parameter>
{
"VolumeSize": 8
,
"ParentSnapshot": snap-123EXAMPLE1234567
,
"ClientToken": "550e8400-e29b-41d4-a716-446655440000
",
"Timeout": 60
}
Die folgende Beispielantwort für die vorherige Anforderung zeigt die Snapshot-ID, die AWS
-Konto-ID, den Status, die Volume-Größe in GiB und die Größe der Blöcke im Snapshot. Der Snapshot wird im Status „Ausstehend“ gestartet. Geben Sie die Snapshot-ID in einer nachfolgenden PutSnapshotBlocks
-Anforderung an, um Daten in den Snapshot zu schreiben.
HTTP/1.1 201 Created
x-amzn-RequestId: 929e6eb9-7183-405a-9502-5b7da37c1b18
Content-Type: application/json
Content-Length: 181
Date: Thu, 18 Jun 2020 04:07:29 GMT
Connection: keep-alive
{
"BlockSize": 524288,
"Description": null,
"OwnerId": "138695307491",
"Progress": null,
"SnapshotId": "snap-052EXAMPLEc85d8dd",
"StartTime": null,
"Status": "pending",
"Tags": null,
"VolumeSize": 8
}
Einfügen von Daten in einen Snapshot
- AWS CLI
-
Der folgende Beispielbefehl put-snapshot schreibt 524288
Bytes von Daten in den Block-Index 1000
für den Snapshot snap-0aaEXAMPLEe306d62
. Die Base64-codierte QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
-Prüfsumme wurde mit dem SHA256
-Algorithmus generiert. Die übertragenen Daten befinden sich in der Datei /tmp/data
.
aws ebs put-snapshot-block --snapshot-id snap-0aaEXAMPLEe306d62
--block-index 1000
--data-length 524288
--block-data /tmp/data
--checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
--checksum-algorithm SHA256
Die folgende Beispielantwort für den vorherigen Befehl bestätigt die Datenlänge, die Prüfsumme und den Prüfsummenalgorithmus für die vom Service empfangenen Daten.
{
"DataLength": "524288",
"Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
"ChecksumAlgorithm": "SHA256"
}
- AWS API
-
Die folgende PutSnapshotBeispielanforderung schreibt 524288
Datenbytes in den Blockindex 1000
des Snapshotssnap-052EXAMPLEc85d8dd
. Die Base64-codierte QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
-Prüfsumme wurde mit dem SHA256
-Algorithmus generiert. Die Daten werden im Hauptteil der Anfrage übertragen und wie BlockData
im folgenden Beispiel dargestellt.
PUT /snapshots/snap-052EXAMPLEc85d8dd
/blocks
/1000 HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-Data-Length: 524288
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T042215Z
X-Amz-Content-SHA256: UNSIGNED-PAYLOAD
Authorization: <Authentication parameter>
BlockData
Die folgende Beispielantwort für die vorherige Anforderung bestätigt Datenlänge, Prüfsumme und Prüfsummenalgorithmus für die vom Service empfangenen Daten.
HTTP/1.1 201 Created
x-amzn-RequestId: 643ac797-7e0c-4ad0-8417-97b77b43c57b
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
Content-Type: application/json
Content-Length: 2
Date: Thu, 18 Jun 2020 04:22:12 GMT
Connection: keep-alive
{}
Abschluss eines Snapshots
- AWS CLI
-
Mit dem folgenden Beispielbefehl complete-snapshot wird der Snapshot snap-0aaEXAMPLEe306d62
abgeschlossen. Der Befehl gibt an, dass 5
Blöcke in den Snapshot geschrieben wurden. Die Prüfsumme 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
stellt die Prüfsumme für den gesamten Datensatz dar, der in den Snapshot geschrieben wurde. Weitere Informationen zu Prüfsummen finden Sie unter Verwenden Sie EBS direkte APIs Prüfsummen, um Snapshot-Daten zu validieren weiter oben in dieser Anleitung.
aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62
--changed-blocks-count 5
--checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
--checksum-algorithm SHA256
--checksum-aggregation-method LINEAR
Im Folgenden finden Sie eine Beispielantwort für den vorherigen Befehl.
{
"Status": "pending"
}
- AWS API
-
Die folgende CompleteSnapshotBeispielanforderung vervollständigt den Snapshotsnap-052EXAMPLEc85d8dd
. Der Befehl gibt an, dass 5
Blöcke in den Snapshot geschrieben wurden. Die Prüfsumme 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
stellt die Prüfsumme für den gesamten Datensatz dar, der in den Snapshot geschrieben wurde.
POST /snapshots/completion/snap-052EXAMPLEc85d8dd
HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-ChangedBlocksCount: 5
x-amz-Checksum: 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
x-amz-Checksum-Algorithm: SHA256
x-amz-Checksum-Aggregation-Method: LINEAR
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T043158Z
Authorization: <Authentication parameter>
Im Folgenden finden Sie eine Beispielantwort für die vorherige Anforderung.
HTTP/1.1 202 Accepted
x-amzn-RequestId: 06cba5b5-b731-49de-af40-80333ac3a117
Content-Type: application/json
Content-Length: 20
Date: Thu, 18 Jun 2020 04:31:50 GMT
Connection: keep-alive
{"Status":"pending"}