Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Actualización de la caché de objetos del bucket de Amazon S3
A medida que su cliente NFS o SMB realiza operaciones en el sistema de archivos, su puerta de enlace mantiene un inventario de los objetos de la caché de objetos de Amazon S3 asociados a su recurso compartido de archivos. Su puerta de enlace utiliza este inventario en caché para reducir la latencia y la frecuencia de las solicitudes de Amazon S3. Esta operación no importa archivos al almacenamiento en caché de S3 File Gateway. Solo actualiza el inventario en caché para reflejar los cambios en el inventario de los objetos de la caché de objetos de Amazon S3.
Para actualizar la caché de objetos del bucket de S3 de su recurso compartido de archivos, seleccione el método que mejor se adapte a su caso de uso de la siguiente lista y, a continuación, complete el procedimiento correspondiente que se indica a continuación.
nota
Independientemente del método que utilice, al publicar un directorio por primera vez, se inicializa, lo que provoca que la puerta de enlace muestre el contenido de metadatos del directorio desde Amazon S3. El tiempo necesario para inicializar un directorio es proporcional al número de entradas de ese directorio.
Temas
Configure un programa de actualización automática de la memoria caché mediante la consola Storage Gateway
El siguiente procedimiento configura un programa de actualización automática de la caché en función del valor de tiempo de vida (TTL) que especifique. Antes de configurar un programa de actualización de la caché basado en TTL, tenga en cuenta lo siguiente:
-
El TTL se mide como el tiempo transcurrido desde la última actualización de la caché de un directorio determinado.
-
La actualización de la caché basada en TTL solo se produce cuando se accede a un directorio determinado después de que haya expirado el período de TTL especificado.
-
La actualización no es recursiva. Solo se produce en los directorios específicos a los que se accede.
-
La actualización implica costes de la API de Amazon S3 únicamente en los directorios que no se han sincronizado desde la caducidad del TTL.
-
Los directorios solo se sincronizan si se accede a ellos mediante una actividad de NFS o SMB.
-
La sincronización no se produce con más frecuencia que el período TTL que especifique.
-
-
Se recomienda configurar la actualización de la caché basada en TTL solo si actualiza con frecuencia el contenido de su bucket de Amazon S3 directamente, fuera del flujo de trabajo entre la puerta de enlace y el bucket de Amazon S3.
-
Las operaciones de NFS y SMB que accedan a directorios caducados se TTLs bloquearán mientras la puerta de enlace actualiza el contenido del directorio.
nota
Dado que la actualización de la memoria caché puede bloquear las operaciones de acceso a los directorios, recomendamos configurar el período TTL más largo que resulte práctico para su implementación.
Para configurar un programa de actualización automática de la memoria caché mediante la consola Storage Gateway
Abra la consola Storage Gateway en https://console.aws.amazon.com/storagegateway/casa
. -
Seleccione Recursos compartidos de archivos.
-
Elija el recurso compartido de archivos para el que desee configurar el programa de actualización.
-
En Actions, elija Edit file share settings.
-
Para actualizar la caché automáticamente desde S3, seleccione la casilla de verificación y configure el tiempo en días, horas y minutos para actualizar la caché del recurso compartido de archivos mediante Time To Live (TTL). TTL es el tiempo transcurrido desde la última actualización, tras el cual el acceso al directorio haría que File Gateway actualizara primero el contenido de ese directorio desde el bucket de Amazon S3.
-
Seleccione Save changes (Guardar cambios).
Configura un programa de actualización de caché automático AWS Lambda con una CloudWatch regla de Amazon
Para configurar un programa de actualización de caché automático AWS Lambda mediante una CloudWatch regla de Amazon
-
Identifique el bucket de S3 que utiliza S3 File Gateway.
-
Compruebe que la sección de eventos esté en blanco. Se rellena automáticamente más adelante.
-
Cree un rol de IAM y permita Trust Relationship for Lambda
lambda.amazonaws.com
. -
Utilice la siguiente política.
-
Cree una función Lambda desde la consola de Lambda.
-
Utilice la siguiente función para la tarea de 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' -
En el rol de ejecución, elija el rol de IAM que creó.
-
Opcional: añada un activador para Amazon S3 y seleccione el evento ObjectCreatedo ObjectRemoved.
nota
RefreshCache
debe completar un proceso antes de iniciar otro. Al crear o eliminar muchos objetos de un depósito, es posible que el rendimiento disminuya. Por lo tanto, no recomendamos utilizar activadores de S3. En su lugar, usa la CloudWatch regla de Amazon que se describe a continuación. -
Crea una CloudWatch regla en la CloudWatch consola y añade un horario. Por lo general, recomendamos una tarifa fija de 30 minutos. Sin embargo, puede utilizar de 1 a 2 horas en un depósito S3 grande.
-
Añade un nuevo desencadenante para CloudWatch los eventos y elige la regla que acabas de crear.
-
Guarde la configuración de Lambda. Seleccione Probar.
-
Elija S3 PUT y personalice la prueba según sus necesidades.
-
La prueba debería tener éxito. De lo contrario, modifique el JSON según sus requisitos y vuelva a realizar la prueba.
-
Abra la consola Amazon S3 y compruebe que el evento que creó y el ARN de la función Lambda estén presentes.
-
Cargue un objeto a su bucket de S3 mediante la consola de Amazon S3 o el AWS CLI.
La CloudWatch consola genera un CloudWatch resultado similar al siguiente.
{ 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'} ] }
La invocación a Lambda proporciona un resultado similar al siguiente.
{ 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' } } }
El recurso compartido de NFS montado en el cliente reflejará esta actualización.
nota
En el caso de las cachés que actualizan la creación o eliminación de objetos grandes en depósitos grandes con millones de objetos, las actualizaciones pueden tardar horas.
-
Elimine el objeto manualmente mediante la consola Amazon S3 o AWS CLI.
-
Vea el recurso compartido de NFS montado en su cliente. Compruebe que el objeto ha desaparecido (porque la caché se ha actualizado).
-
Revisa tus CloudWatch registros para ver el registro de tu eliminación junto con el 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
En el caso de los trabajos temporales o las tareas programadas, tu evento de CloudWatch registro es
u'detail-type': u'Scheduled Event'
.
Realice una actualización manual de la memoria caché mediante la consola Storage Gateway
Para realizar una actualización manual de la caché mediante la consola Storage Gateway
Abra la consola Storage Gateway en https://console.aws.amazon.com/storagegateway/casa
. -
Seleccione Recursos compartidos de archivos y, a continuación, elija el recurso compartido de archivos para el que desee realizar la actualización.
-
En Actions (Acciones), elija Refresh cache (Actualizar caché).
El tiempo que tarda el proceso de actualización depende del número de objetos almacenados en la memoria caché de la gateway y del número de objetos que se han añadido o eliminado del bucket de S3.
Realice una actualización manual de la caché mediante la API Storage Gateway
El siguiente procedimiento realiza una actualización manual de la caché mediante la API Storage Gateway. Antes de realizar una actualización de la caché basada en la API, tenga en cuenta lo siguiente:
-
Puede especificar una actualización recursiva o no recursiva.
-
Una actualización recursiva consume más recursos y es más cara.
-
La actualización incurre en costes de la API de Amazon S3 únicamente en los directorios que pase como argumentos en la solicitud y en los descendientes de esos directorios si especifica una actualización recursiva.
-
La actualización se ejecuta simultáneamente con otras operaciones mientras la puerta de enlace está en uso.
-
Por lo general, las operaciones de NFS y SMB no se bloquean durante las actualizaciones, a menos que haya una actualización activa para el directorio al que se accede mediante la operación.
-
La puerta de enlace no puede determinar si el contenido actual de la caché está obsoleto y lo utiliza para las operaciones de NFS y SMB, independientemente de si está actualizado.
-
Dado que una actualización de la caché utiliza recursos de hardware virtual de la puerta de enlace, el rendimiento de la puerta de enlace podría verse afectado negativamente mientras la actualización esté en curso.
-
-
Se recomienda realizar una actualización de la caché basada en API solo si actualiza el contenido del bucket de Amazon S3 directamente, fuera del flujo de trabajo entre la puerta de enlace y el bucket de Amazon S3.
nota
Si conoce los directorios específicos en los que va a actualizar el contenido de Amazon S3 fuera del flujo de trabajo de la puerta de enlace, le recomendamos que especifique estos directorios en su solicitud de actualización basada en API para reducir los costes de la API de Amazon S3 y el impacto en el rendimiento de la puerta de enlace.
Para realizar una actualización manual de la caché mediante la API Storage Gateway
-
Envíe una solicitud HTTP POST para invocar la
RefreshCache
operación con los parámetros que desee a través de la API Storage Gateway. Para obtener más información, consulte la referencia RefreshCachede la API AWS de Storage Gateway.nota
El envío de la
RefreshCache
solicitud solo inicia la operación de actualización de la caché. El hecho de que finalice la actualización de la caché no significa necesariamente que haya finalizado la actualización del archivo. Para determinar que la operación de actualización archivos ha finalizado antes de comprobar si hay archivos nuevos en el recurso compartido de archivos de la gateway, utilice la notificaciónrefresh-complete
. Para ello, puedes suscribirte para recibir notificaciones a través de un CloudWatch evento de Amazon. Para obtener más información, consulte Recibir notificaciones sobre las operaciones con archivos.