Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Rédigez des EBS instantanés Amazon avec Direct EBS APIs
Les étapes suivantes décrivent comment utiliser la commande EBS directe APIs pour écrire des instantanés incrémentiels :
-
Utilisez cette StartSnapshot action et spécifiez un ID de cliché parent pour démarrer un instantané en tant que capture incrémentielle d'un instantané existant, ou omettez l'ID de cliché parent pour démarrer un nouveau cliché. Cette action renvoie le nouvel ID d’instantané, qui est en attente.
-
Utilisez l' PutSnapshotBlock action et spécifiez l'ID de l'instantané en attente pour y ajouter des données sous forme de blocs individuels. Vous devez spécifier une SHA256 somme de contrôle codée en Base64 pour le bloc de données transmis. Le service calcule la somme de contrôle des données reçues et la valide avec la somme de contrôle que vous avez spécifiée. L’action échoue si les sommes de contrôle ne correspondent pas.
-
Lorsque vous avez terminé d'ajouter des données à l'instantané en attente, utilisez cette CompleteSnapshot action pour démarrer un flux de travail asynchrone qui scelle l'instantané et le fait passer à l'état terminé.
Répétez ces étapes pour créer un nouvel instantané incrémentiel à l’aide de l’instantané précédemment créé en tant que parent.
Par exemple, dans le diagramme suivant, l’instantané A est le premier nouvel instantané démarré. L’instantané A est utilisé comme instantané parent pour démarrer l’instantané B. L’instantané B est utilisé comme instantané parent pour démarrer et créer l’instantané C. Les instantanés A, B et C sont des instantanés incrémentiels. L'instantané A est utilisé pour créer EBS le volume 1. Le snapshot D est créé à partir EBS du volume 1. L’instantané D est un instantané incrémentiel de A ; et non un instantané incrémentiel de B ou C.
Les exemples suivants montrent comment écrire des instantanés à l'aide de la commande EBS directeAPIs.
Démarrer un instantané
- AWS CLI
-
L’exemple de commande start-snapshot suivant démarre un instantané 8
Gio en utilisant l’instantané snap-123EXAMPLE1234567
comme instantané parent. Le nouvel instantané sera un instantané incrémentiel de l’instantané parent. L’instantané passe à un état d’erreur s’il n’y a pas de demande d’ajout ou d’exécution pour l’instantané pendant la période de 60
minutes spécifiée. Le jeton client 550e8400-e29b-41d4-a716-446655440000
garantit l’idempotence pour la demande. Si le jeton client est omis, il en génère un AWS SDK automatiquement pour vous. Pour plus d’informations sur l’idempotence, consultez Garantir l'idempuissance des demandes StartSnapshot API.
aws ebs start-snapshot --volume-size 8
--parent-snapshot snap-123EXAMPLE1234567
--timeout 60
--client-token 550e8400-e29b-41d4-a716-446655440000
L’exemple de réponse suivant pour la commande précédente indique l’ID du snapshot, l’ID du compte AWS
, l’état, la taille du volume en Gio et la taille des blocs dans l’instantané. L’instantané est démarré dans un état pending
. Spécifiez l’ID d’instantané dans les commandes put-snapshot-block
suivantes pour écrire des données dans l’instantané, puis utilisez la commande complete-snapshot
pour terminer l’instantané et modifier son état sur completed
.
{
"SnapshotId": "snap-0aaEXAMPLEe306d62",
"OwnerId": "111122223333",
"Status": "pending",
"VolumeSize": 8,
"BlockSize": 524288
}
- AWS API
-
L'StartSnapshotexemple de demande suivant démarre un instantané 8
GiB, en utilisant l'instantané snap-123EXAMPLE1234567
comme instantané parent. Le nouvel instantané sera un instantané incrémentiel de l’instantané parent. L’instantané passe à un état d’erreur s’il n’y a pas de demande d’ajout ou d’exécution pour l’instantané pendant la période de 60
minutes spécifiée. Le jeton client 550e8400-e29b-41d4-a716-446655440000
garantit l’idempotence pour la demande. Si le jeton client est omis, il en génère un AWS SDK automatiquement pour vous. Pour plus d’informations sur l’idempotence, consultez Garantir l'idempuissance des demandes StartSnapshot API.
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
}
L’exemple de réponse suivant pour la demande précédente indique l’ID d’instantané, l’ID de compte AWS
, l’état, la taille du volume en Gio et la taille des blocs dans l’instantané. L’instantané est démarré dans un état en attente. Spécifiez l’ID d’instantané dans une demande PutSnapshotBlocks
ultérieure d’écriture de données dans l’instantané .
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
}
Ajouter des données dans un instantané
- AWS CLI
-
L’exemple de commande put-snapshot suivant écrit les 524288
octets de données pour bloquer l’index 1000
sur l’instantané snap-0aaEXAMPLEe306d62
. La somme de contrôle QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
codée en Base64 a été générée à l'aide de l'algorithme SHA256
. Les données transmises se trouvent dans le fichier /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
L’exemple de réponse suivant pour la commande précédente confirme la longueur des données, la somme de contrôle et l’algorithme de somme de contrôle pour les données reçues par le service.
{
"DataLength": "524288",
"Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
"ChecksumAlgorithm": "SHA256"
}
- AWS API
-
L'PutSnapshotexemple de demande suivant écrit des 524288
octets de données pour bloquer l'index 1000
sur un instantanésnap-052EXAMPLEc85d8dd
. La somme de contrôle QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
codée en Base64 a été générée à l’aide de l’algorithme SHA256
. Les données sont transmises dans le corps de la demande et sont représentées sous la forme BlockData
dans l'exemple suivant.
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
Voici un exemple de réponse pour la demande précédente, qui confirme la longueur des données, la somme de contrôle et l’algorithme de somme de contrôle pour les données que le service reçoit.
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
{}
Terminer un instantané
- AWS CLI
-
L’exemple de commande complete-snapshot suivant termine l’instantané snap-0aaEXAMPLEe306d62
. La commande spécifie que les blocs 5
ont été écrits dans l'instantané. La somme de contrôle 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
représente la somme de contrôle de l'ensemble complet des données écrites dans un instantané. Pour plus d’informations sur les sommes de contrôle, consultez Utilisez EBS des APIs checksums directs pour valider les données des instantanés plus haut dans ce guide.
aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62
--changed-blocks-count 5
--checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
--checksum-algorithm SHA256
--checksum-aggregation-method LINEAR
Voici un exemple de réponse pour la commande précédente.
{
"Status": "pending"
}
- AWS API
-
L'CompleteSnapshotexemple de demande suivant permet de terminer le snapshotsnap-052EXAMPLEc85d8dd
. La commande spécifie que les blocs 5
ont été écrits dans l’instantané. La somme de contrôle 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
représente la somme de contrôle de l’ensemble complet des données écrites dans un instantané.
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>
Voici un exemple de réponse pour la demande précédente.
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"}