Creación y Configuración de Buckets S3 con CloudFormation
Clase 8 de 24 • Curso Avanzado de Serverless Framework en AWS
Resumen
¿Cómo se crea un bucket en S3 utilizando CloudFormation?
Para subir imágenes u objetos a S3 impementando un enfoque serverless, lo primero es crear un bucket en S3. Este bucket almacenará los objetos y firmará las URLs. Aunque no se requiere conexión directa con funciones Lambda al principio, es un recurso imprescindible de Amazon Web Services.
Ejemplo de creación del bucket en YAML
Creamos el bucket usando la sintaxis de CloudFormation, que nos permite crear recursos de AWS con YAML o JSON. Aquí mostramos cómo buscar un ejemplo y adaptarlo:
- Busque ejemplos de CloudFormation para crear un bucket S3.
- Seleccione un ejemplo de bucket de acceso público para ver las imágenes.
- Cópielo y péguelo en su archivo
serverless.yml
.
Aquí se ilustra un ejemplo básico en YAML:
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
Es crucial que los buckets tengan un nombre globalmente único, similar a los nombres de dominio. Puede usar nombres aleatorios para asegurarse de su unicidad, como bucket-serverless-curso-12345
.
¿Qué políticas de acceso necesita el bucket?
Un bucket S3 requiere una Policy que establezca si es públicamente accesible. Esto asegura que los objetos que almacene tengan el nivel de acceso adecuado.
Añadir un Bucket Policy
Para definir un Bucket Policy en CloudFormation sigue estos pasos:
- Busque un ejemplo de "CloudFormation Bucket Policy".
- Adapte el ejemplo, haciendo referencias al bucket creado.
Aquí tiene un fragmento de YAML para añadir a su archivo serverless.yml
:
Resources:
S3BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref S3Bucket
PolicyDocument:
Statement:
- Effect: Allow
Action:
- "s3:GetObject"
Resource: !Sub "arn:aws:s3:::${S3Bucket}/*"
Principal: "*"
Este ejemplo permite la lectura pública de los objetos del bucket.
¿Cómo desplegar los recursos con Serverless Framework?
Con todos los elementos listos en su archivo YAML, el siguiente paso es desplegarlos usando Serverless Framework.
Pasos para desplegar con Serverless Framework
- Execute
sls deploy
en su terminal. - CloudFormation detectará y aplicará los cambios necesarios para crear el bucket y la política.
- Supervise el progreso de la implementación y asegúrese de corregir errores si ocurren.
Este proceso añadirá el bucket y el policy a su stack de CloudFormation, integrando estos recursos con su arquitectura existente.
¿Cómo confirmar que el bucket está bien configurado?
Después de implementar, es vital asegurarse de que el bucket se creó correctamente y es accesible como se esperaba.
Verifique que el bucket es accesible públicamente
- Ingrese a AWS, navegue a S3 y busque su bucket.
- Suba un archivo, como una imagen.
- Consiga la URL pública del archivo subido y verifique el acceso público.
Si el bucket está configurado correctamente, la imagen debería ser accesible públicamente a través del URL proporcionado por Amazon.
Con estos pasos, ya tendrá su bucket de S3 listo para integrarse con una función Lambda que firme las URLs y entregue estas al usuario. Este es un procedimiento fundamental al construir aplicaciones serverless con AWS. ¡Siga explorando estas tecnologías para potenciar sus aplicaciones!