Pourquoi les modifications apportées à mon compartiment Amazon S3 ne s'affichent-elles pas sur le partage de fichiers Storage Gateway ?

Date de la dernière mise à jour : 04/02/2020

J'ai apporté des modifications à mon compartiment Amazon Simple Storage Service (Amazon S3), notamment le chargement d'un nouveau fichier ou la suppression d'un fichier existant. Pourtant, les modifications ne se propagent pas à mon partage de fichiers AWS Storage Gateway. Comment puis-je y remédier ?

Brève description

Storage Gateway met automatiquement à jour le cache de partage de fichiers lorsque vous écrivez des fichiers dans le cache localement à l'aide de la fonction de partage de fichiers. Pourtant, Storage Gateway ne met pas automatiquement à jour le cache lorsque vous chargez un fichier directement dans Amazon S3. Lorsque vous procédez ainsi, vous devez effectuer une opération RefreshCache pour voir les modifications sur le partage de fichiers. Si vous avez plusieurs partages de fichiers, vous devez exécuter l'opération RefreshCache sur chaque partage de fichiers.

Vous pouvez actualiser le cache à l'aide de la console Storage Gateway, de l'interface de ligne de commande AWS (AWS CLI) ou d'une fonction AWS Lambda.

Résolution

Utilisation de la console Storage Gateway

Pour actualiser le cache à l'aide de la console Storage Gateway, consultez Actualisation des objets dans votre compartiment Amazon S3.

Utilisation de l'interface de ligne de commande AWS (AWS CLI)

1.    Exécutez la commande list-file-shares :

$ aws storagegateway list-file-shares

2.    Copiez l'Amazon Resource Number (ARN) du partage de fichiers avec le cache que vous souhaitez actualiser. Exécutez ensuite la commande refresh-cache et saisissez l'ARN comme valeur pour --file-share-arn :

$ aws storagegateway refresh-cache --file-share-arn arn:aws:storagegateway:eu-west-1:12345678910:share/share-FFDEE12

Une autre option consiste à créer un script ou une tâche cron planifiée pour exécuter la commande refresh-cache à certains intervalles. Par exemple, la tâche cron suivante exécute la commande toutes les 12 heures :

0 */12 * * * root aws storagegateway refresh-cache --file-share-arn arn:aws:storagegateway:eu-west-1:12345678910:share/share-FFDEE12

Remarque : vous devez planifier la tâche cron à l'aide des informations d'identification d'un utilisateur ou d'un rôle AWS Identity and Access Management (IAM) disposant des autorisations nécessaires pour exécuter la commande refresh-cache.

Utiliser une fonction Lambda

Vous pouvez créer une fonction Lambda qui exécute l'API RefreshCache selon un certain calendrier. L'exemple de fonction suivant utilise boto3 :

import json
import boto3
client = boto3.client('storagegateway')
def lambda_handler(event, context):
    print(event)
    response = client.refresh_cache(
        FileShareARN='arn:aws:storagegateway:ap-southeast-2:123456789012:share/share-EEFFBD9C'
    )
    print(response)
    return 'Your FileShare Cache has been Refreshed'

Notez les éléments suivants pour automatiser l'opération d'actualisation du cache :


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?