Comment vérifier une règle de configuration de cycle de vie d'Amazon S3 pour le nettoyage des chargements partitionnés incomplets ?

Lecture de 5 minute(s)
0

J'ai défini une règle de configuration du cycle de vie Amazon Simple Storage Service (Amazon S3) pour nettoyer les chargements partitionnés incomplets. Comment puis-je m'assurer que la règle fonctionne ?

Brève description

Vous pouvez vérifier la règle de configuration Amazon S3 Lifecycle de chacune des manières suivantes :

  • Interroger les journaux d'accès au serveur.
  • Tester la règle en chargeant certaines parties d'un chargement partitionné à l'aide de l'interface de ligne de commande AWS (AWS CLI).
    Remarque : lorsque vous utilisez l'interface de ligne de commande AWS (AWS CLI) pour définir la règle, elle est appelée AbortIncompleteMultipartUpload.

Solution

Interroger les journaux d'accès au serveur

Pour interroger les journaux d'accès au serveur, la journalisation des accès au serveur doit être activée sur votre compartiment avant que la règle de cycle de vie d'Amazon S3 ne soit configurée de manière à s'exécuter. Une fois que les journaux sont disponibles, vous pouvez les consulter pour vérifier si la règle a nettoyé un chargement partitionné incomplet. Pour plus d'informations, consultez Cycle de vie et journalisation d'Amazon S3.

Tester la règle en chargeant certaines parties d'un chargement partitionné à l'aide de l'interface de ligne de commande AWS

Si la journalisation des accès au serveur n'est pas activée, vous pouvez tester la règle en exécutant un chargement partitionné incomplet :

Remarque : l'exemple suivant utilise AWS CLI pour effectuer un chargement partitionné. Pour effectuer un chargement partitionné à l'aide d'un kit SDK AWS, consultez la section Chargement d'objets à l'aide de l'API de chargement partitionné.

1.    Divisez le fichier que vous souhaitez charger en plusieurs parties. Par exemple, si vous utilisez un système d'exploitation Linux, utilisez la commande split :

split /path/to/filetoupload

2.    Exécutez la commande create-multipart-upload à l'aide de l'interface de ligne de commande AWS pour lancer un chargement partitionné :

aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file

Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, assurez-vous d'utiliser la version AWS CLI la plus récente.

La commande renvoie une sortie qui contient l'UploadID (ID de chargement).

3.    Copiez la valeur UploadID comme référence pour les étapes ultérieures. La sortie de commande ressemble à ceci :

{
    "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT",
    "AbortRuleId": "multipartcleanup",
    "Bucket": "awsexamplebucket",
    "Key": "objectname",
    "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk"
}

4.    Exécutez la commande upload-part pour charger la première partie du fichier.

aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk

Remarque : remplacez toutes les valeurs par les valeurs de votre compartiment Amazon S3, de votre fichier et de votre chargement partitionné.

La commande renvoie une sortie qui contient une valeur ETag pour la partie du fichier que vous avez chargé.

5.    Copiez la valeur ETag comme référence pour les étapes ultérieures. La sortie de commande ressemble à ce qui suit :

{
    "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\""
}

6.    Répétez les étapes 3 et 4 pour certaines parties du fichier. Pour ce test, ne chargez pas toutes les parties pour compléter le fichier.

**Remarque :**augmentez le numéro de partie chaque fois que vous chargez une nouvelle partie.

7.    Pour ce test, ne terminez pas et n'abandonnez pas l'opération de chargement partitionné. Notez cette fois-ci les parties qui ont été chargées en exécutant la commande list-parts comme suit :

aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk

La commande renvoie la liste des parties :

{
    "Parts": [
        {
            "PartNumber": 1,
            "LastModified": "2019-06-01T18:17:39.000Z",
            "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"",
            "Size": 162641
        },
        {
            "PartNumber": 2,
            "LastModified": "2019-06-01T18:18:19.000Z",
            "ETag": "\"example246e31ab807da6f62802c1ae8\"",
            "Size": 3961
        }
    ],
    "Initiator": {
        "ID": "arn:aws:iam::111122223333:user/jane",
        "DisplayName": "jane"
    },
    "Owner": {
        "DisplayName": "bucketowner",
        "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d"
    },
    "StorageClass": "STANDARD"
}

8.    Notez les chargements partitionnés en cours pour votre compartiment en exécutant la commande list-multipart-uploads comme suit :

aws s3api list-multipart-uploads --bucket awsexamplebucket

La commande renvoie une liste des chargements partitionnés en cours :

{
    "Uploads": [
        {
            "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk",
            "Key": "large_test_file",
            "Initiated": "2019-06-01T17:08:33.000Z",
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "bucketowner",
                "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d"
            },
            "Initiator": {
                "ID": "arn:aws:iam::111122223333:user/jane",
                "DisplayName": "jane"
            }
        }
    ]
}

9.    Attendez le nombre de jours que vous avez défini pour votre règle de configuration S3 Lifecycle. (Lorsque vous avez défini votre règle de configuration du cycle de vie de S3, vous avez spécifié le nombre de jours après le début d'un chargement partitionné où un nettoyage doit avoir lieu.)

10.    Exécutez à nouveau la commande list-parts pour voir si les parties du chargement partitionné incomplet ont été supprimées. Une fois que les parties ont été supprimées par la règle, la commande renvoie la réponse suivante :

"An error occurred (NoSuchUpload) when calling the ListParts operation: The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed."

11.    Exécutez à nouveau la commande list-multipart-uploads pour voir si l'opération partitionnée a été interrompue. Une fois l'opération en plusieurs parties interrompue par la règle, la commande ne renvoie aucune sortie.


Informations connexes

Chargement d'objets grâce à l'API de téléchargement partitionné

Comment utiliser AWS CLI pour effectuer le chargement partitionné d'un fichier sur Amazon S3 ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an