Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiornamento della cache degli oggetti del bucket Amazon S3
Mentre il client NFS o SMB esegue le operazioni del file system, il gateway mantiene un inventario degli oggetti nella cache degli oggetti di Amazon S3 associata alla condivisione di file. Il tuo gateway utilizza questo inventario memorizzato nella cache per ridurre la latenza e la frequenza delle richieste Amazon S3. Questa operazione non importa file nella memoria cache di S3 File Gateway. Aggiorna solo l'inventario memorizzato nella cache per riflettere le modifiche nell'inventario degli oggetti nella cache degli oggetti di Amazon S3.
Per aggiornare la cache degli oggetti del bucket S3 per la condivisione di file, seleziona il metodo più adatto al tuo caso d'uso dall'elenco seguente, quindi completa la procedura corrispondente riportata di seguito.
Nota
Indipendentemente dal metodo utilizzato, l'elenco di una directory per la prima volta la inizializza, il che fa sì che il gateway elenchi i contenuti dei metadati della directory da Amazon S3. Il tempo necessario per inizializzare una directory è proporzionale al numero di voci in quella directory.
Argomenti
Configurare una pianificazione di aggiornamento automatico della cache utilizzando la console Storage Gateway
La procedura seguente configura una pianificazione di aggiornamento automatico della cache basata su un valore Time To Live (TTL) specificato dall'utente. Prima di configurare una pianificazione di aggiornamento della cache basata su TTL, considerate quanto segue:
-
Il TTL viene misurato come il periodo di tempo trascorso dall'ultimo aggiornamento della cache per una determinata directory.
-
L'aggiornamento della cache basato su TTL si verifica solo quando si accede a una determinata directory dopo la scadenza del periodo TTL specificato.
-
L'aggiornamento non è ricorsivo. Si verifica solo nelle directory specifiche a cui si accede.
-
L'aggiornamento comporta i costi dell'API Amazon S3 solo per le directory che non sono state sincronizzate dalla scadenza del TTL.
-
Le directory vengono sincronizzate solo se vi si accede tramite attività NFS o SMB.
-
La sincronizzazione non si verifica più frequentemente del periodo TTL specificato.
-
-
La configurazione dell'aggiornamento della cache basato su TTL è consigliata solo se aggiorni frequentemente il contenuto del tuo bucket Amazon S3 direttamente, al di fuori del flusso di lavoro tra il gateway e il bucket Amazon S3.
-
Le operazioni NFS e SMB che accedono alle directory con dati scaduti TTLs verranno bloccati mentre il gateway aggiorna il contenuto della directory.
Nota
Poiché l'aggiornamento della cache può bloccare le operazioni di accesso alle directory, consigliamo di configurare il periodo TTL più lungo possibile per l'implementazione.
Per configurare una pianificazione automatica dell'aggiornamento della cache utilizzando la console Storage Gateway
Apri la console Storage Gateway a https://console.aws.amazon.com/storagegateway/casa
. -
Scegli Condivisioni di file.
-
Scegli la condivisione di file per la quale desideri configurare la pianificazione dell'aggiornamento.
-
Per Azioni, scegli Modifica le impostazioni di condivisione dei file.
-
Per l'aggiornamento automatico della cache da S3 dopo, seleziona la casella di controllo e imposta l'ora in giorni, ore e minuti per aggiornare la cache della condivisione di file utilizzando Time To Live (TTL). TTL è il periodo di tempo trascorso dall'ultimo aggiornamento dopo il quale l'accesso alla directory farebbe sì che File Gateway aggiorni per la prima volta i contenuti di quella directory dal bucket Amazon S3.
-
Scegli Save changes (Salva modifiche).
Configura una pianificazione di aggiornamento automatico della cache utilizzando AWS Lambda una regola Amazon CloudWatch
Per configurare una pianificazione di aggiornamento automatico della cache utilizzando AWS Lambda una regola Amazon CloudWatch
-
Identifica il bucket S3 utilizzato da S3 File Gateway.
-
Verifica che la sezione Evento sia vuota. Si popola automaticamente in un secondo momento.
-
Crea un ruolo IAM e consenti Trust Relationship for
lambda.amazonaws.com
Lambda. -
Utilizza la seguente politica.
-
Crea una funzione Lambda dalla console Lambda.
-
Usa la seguente funzione per l'attività Lambda.
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:672406474878:share/share-E51FBS9C
' ) print(response) return 'Your FileShare cache has been refreshed' -
Per il ruolo Execution, scegli il ruolo IAM che hai creato.
-
Facoltativo: aggiungi un trigger per Amazon S3 e seleziona l'evento ObjectCreatedo. ObjectRemoved
Nota
RefreshCache
deve completare un processo prima di iniziarne un altro. Quando si creano o si eliminano molti oggetti in un bucket, le prestazioni potrebbero peggiorare. Pertanto, sconsigliamo di utilizzare i trigger S3. Utilizza invece la CloudWatch regola Amazon descritta di seguito. -
Crea una CloudWatch regola sulla CloudWatch console e aggiungi una pianificazione. In genere, consigliamo una tariffa fissa di 30 minuti. Tuttavia, puoi utilizzare 1—2 ore su un bucket S3 di grandi dimensioni.
-
Aggiungi un nuovo trigger per CloudWatch gli eventi e scegli la regola che hai appena creato.
-
Salva la tua configurazione Lambda. Scegli Test (Esegui test).
-
Scegli S3 PUT e personalizza il test in base alle tue esigenze.
-
Il test dovrebbe avere esito positivo. In caso contrario, modifica il JSON in base alle tue esigenze e ripeti il test.
-
Apri la console Amazon S3 e verifica che l'evento creato e l'ARN della funzione Lambda siano presenti.
-
Carica un oggetto nel tuo bucket S3 utilizzando la console Amazon S3 o il. AWS CLI
La CloudWatch console genera un CloudWatch output simile al seguente.
{ u'Records': [ {u'eventVersion': u'2.0', u'eventTime': u'2018-09-10T01:03:59.217Z', u'requestParameters': {u'sourceIPAddress': u'MY-IP-ADDRESS'}, u's3': {u'configurationId': u'95a51e1c-999f-485a-b994-9f830f84769f', u'object': {u'sequencer': u'00549CC2BF34D47AED', u'key': u'new/filename.jpeg'}, u'bucket': {u'arn': u'arn:aws:s3:::amzn-s3-demo-bucket', u'name': u'MY-GATEWAY-NAME', u'ownerIdentity': {u'principalId': u'A3OKNBZ72HVPP9'}}, u's3SchemaVersion': u'1.0'}, u'responseElements': {u'x-amz-id-2': u'76tiugjhvjfyriugiug87t890nefevbck0iA3rPU9I/s4NY9uXwtRL75tCyxasgsdgfsq+IhvAg5M=', u'x-amz-request-id': u'651C2D4101D31593'}, u'awsRegion': u'MY-REGION', u'eventName': u'ObjectCreated:PUT', u'userIdentity': {u'principalId': u'AWS:AROAI5LQR5JHFHDFHDFHJ:MY-USERNAME'}, u'eventSource': u'aws:s3'} ] }
L'invocazione Lambda fornisce un output simile al seguente.
{ u'FileShareARN': u'arn:aws:storagegateway:REGION:ACCOUNT-ID:share/MY-SHARE-ID', 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '6663236a-b495-11e8-946a-bf44f413b71f', 'HTTPHeaders': {'x-amzn-requestid': '6663236a-b495-11e8-946a-bf44f413b71f', 'date': 'Mon, 10 Sep 2018 01:03:59 GMT', 'content-length': '90', 'content-type': 'application/x-amz-json-1.1' } } }
La condivisione NFS montata sul client rifletterà questo aggiornamento.
Nota
Per le cache che aggiornano la creazione o l'eliminazione di oggetti di grandi dimensioni in bucket di grandi dimensioni con milioni di oggetti, gli aggiornamenti potrebbero richiedere ore.
-
Elimina l'oggetto manualmente utilizzando la console Amazon S3 o. AWS CLI
-
Visualizza la condivisione NFS montata sul tuo client. Verifica che l'oggetto sia sparito (perché la cache è stata aggiornata).
-
Controlla i CloudWatch log per vedere il registro dell'eliminazione con l'evento.
ObjectRemoved:Delete
{ u'account': u'MY-ACCOUNT-ID', u'region': u'MY-REGION', u'detail': {}, u'detail-type': u'Scheduled Event', u'source': u'aws.events', u'version': u'0', u'time': u'2018-09-10T03:42:06Z', u'id': u'6468ef77-4db8-0200-82f0-04e16a8c2bdb', u'resources': [u'arn:aws:events:REGION:MY-ACCOUNT-ID:rule/FGw-RefreshCache-CW'] }
Nota
Per i cron job o le attività pianificate, il tuo evento di CloudWatch registro è.
u'detail-type': u'Scheduled Event'
Eseguire un aggiornamento manuale della cache utilizzando la console Storage Gateway
Per eseguire un aggiornamento manuale della cache utilizzando la console Storage Gateway
Apri la console Storage Gateway a https://console.aws.amazon.com/storagegateway/casa
. -
Scegli Condivisioni di file, quindi scegli la condivisione di file per la quale desideri eseguire l'aggiornamento.
-
Per Actions (Operazioni), scegliere Refresh cache (Aggiorna cache).
Il tempo richiesto dal processo di aggiornamento dipende dal numero di oggetti memorizzati nella cache del gateway e dal numero di oggetti che sono stati aggiunti o rimossi dal bucket S3.
Eseguire un aggiornamento manuale della cache utilizzando l'API Storage Gateway
La procedura seguente esegue un aggiornamento manuale della cache utilizzando l'API Storage Gateway. Prima di eseguire un aggiornamento della cache basato su API, considera quanto segue:
-
È possibile specificare un aggiornamento ricorsivo o non ricorsivo.
-
Un aggiornamento ricorsivo richiede più risorse e più costoso.
-
L'aggiornamento comporta i costi dell'API Amazon S3 solo per le directory passate come argomenti nella richiesta e per i discendenti di tali directory se si specifica un aggiornamento ricorsivo.
-
L'aggiornamento viene eseguito contemporaneamente ad altre operazioni mentre il gateway è in uso.
-
Le operazioni NFS e SMB in genere non vengono bloccate durante gli aggiornamenti, a meno che non sia attivo un aggiornamento per la directory a cui l'operazione accede.
-
Il gateway non è in grado di determinare se il contenuto corrente della cache è obsoleto e utilizza il contenuto corrente per le operazioni NFS e SMB indipendentemente dall'aggiornamento.
-
Poiché l'aggiornamento della cache utilizza risorse hardware virtuali del gateway, le prestazioni del gateway potrebbero subire un impatto negativo durante l'aggiornamento.
-
-
L'aggiornamento della cache basato su API è consigliato solo se aggiorni il contenuto del bucket Amazon S3 direttamente, al di fuori del flusso di lavoro tra il gateway e il bucket Amazon S3.
Nota
Se conosci le directory specifiche in cui stai aggiornando i contenuti di Amazon S3 al di fuori del flusso di lavoro del gateway, ti consigliamo di specificare queste directory nella richiesta di aggiornamento basata su API per ridurre i costi delle API di Amazon S3 e l'impatto sulle prestazioni del gateway.
Per eseguire un aggiornamento manuale della cache utilizzando l'API Storage Gateway
-
Invia una richiesta HTTP POST per richiamare l'
RefreshCache
operazione con i parametri desiderati tramite l'API Storage Gateway. Per ulteriori informazioni, vedere RefreshCache AWSlo Storage Gateway API Reference.Nota
L'invio della
RefreshCache
richiesta avvia solo l'operazione di aggiornamento della cache. Quando l'aggiornamento della cache termina, non significa necessariamente l'aggiornamento dei file sia stato completato. Per stabilire se l'operazione di aggiornamento dei file sia completa prima di verificare la presenza di nuovi file sulla condivisione file del gateway, utilizzare la notificarefresh-complete
. A tale scopo, puoi iscriverti per ricevere notifiche tramite un CloudWatch evento Amazon. Per ulteriori informazioni, consulta Ricevere notifiche sulle operazioni sui file.