LINUX

Cómo cargar archivos a S3 usando Terraform

subir archivos a s3 usando terraform

Terraform es una herramienta de infraestructura como código de código abierto, creada por HashiCorp. Es una herramienta para crear, cambiar y crear versiones de infraestructura de manera segura y eficiente en la nube. La infraestructura como herramienta de código permite a los desarrolladores codificar la infraestructura de una manera que hace que el aprovisionamiento sea automatizado, más rápido y repetible.

Amazon S3 es un almacenamiento de objetos que puede utilizar para almacenar y recuperar cualquier cantidad de datos, en cualquier momento y desde cualquier lugar de la web.

En este tutorial, le mostraré cómo cargar archivos desde una computadora portátil / PC al bucket de AWS S3 usando terraform.

Requisito

  1. Cuenta de AWS y usuario de Identity Access Management (IAM) con un par de clave secreta de acceso.
  2. Terraform instalado en su sistema.

Paso 1: proporcione la clave de acceso

Cree un nombre de archivo provider.tf y pegue la siguiente línea de código. La clave de acceso y la clave secreta se generan cuando agrega un usuario en ESTOY. Asegúrese de que el usuario tenga al menos el privilegio de AmazonS3FullAccess. Seleccione la región en la que va a trabajar.

provider "aws" {

  access_key = "ACCESS_KEY_HERE"

  secret_key = "SECRET_KEY_HERE"

  region     = "us-east-1"
}

Paso 2: crea un depósito

Abra otro archivo en el mismo nombre de directorio ‘s3bucket.tf’ y cree nuestro primer depósito ‘b1’, asígnele el nombre ‘s3-terraform-bucket’. Es posible que obtenga un error si el nombre del depósito proporcionado ‘s3-terraform-bucket’ no es único en la región global de AWS. Otra cosa importante es ACL que proporciona acceso granular a su depósito, que sea privado o público. Puede proporcionar la etiqueta como desee.

Además, cargue el archivo, que se encuentra en el directorio ‘myfiles’. Definir recurso como aws_s3_bucket_object. Para hacer referencia al depósito que acaba de definir anteriormente, consígalo del id. Llave es el nombre que se le da al objeto según su elección. Etag se proporciona para encontrar si el archivo ha sido modificado desde su última carga usando md5 sum.

# Create a bucket
resource "aws_s3_bucket" "b1" {

  bucket = "s3-terraform-bucket-lab"

  acl    = "private"   # or can be "public-read"

  tags = {

    Name        = "My bucket"

    Environment = "Dev"

  }

}

# Upload an object
resource "aws_s3_bucket_object" "object" {

  bucket = aws_s3_bucket.b1.id

  key    = "profile"

  acl    = "private"  # or can be "public-read"

  source = "myfiles/yourfile.txt"

  etag = filemd5("myfiles/yourfile.txt")

}

Paso 2.1: para cargar varios archivos (opcional)

Si desea cargar todos los archivos de un directorio, debe usar el bucle ‘for_each’.

resource "aws_s3_bucket_object" "object1" {
for_each = fileset("myfiles/", "*")
bucket = aws_s3_bucket.b1.id
key = each.value
source = "myfiles/${each.value}"
etag = filemd5("myfiles/${each.value}")
}

Paso 3: ejecutar

La terraforma comando plan se utiliza para crear un plan de ejecución. Terraform realiza una actualización, a menos que se deshabilite explícitamente, y luego determina qué acciones son necesarias para lograr el estado deseado especificado en los archivos de configuración.

Finalmente para ejecutar terraform aplicar y ver la salida.

terraform plan
terraform apply

Inicie sesión en su consola de AWS y vaya a S3 Servicio. Puede ver allí un cubo s3-terraform -bucket y el archivo que carga dentro de él.

cubo aws s3
AWS S3 Bucket: ‘s3-terraform-bucket-lab’

Conclusión

Hemos llegado al final de este artículo. En esta guía, lo guiamos a través de los pasos necesarios para crear un depósito en AWS s3, agregar uno o varios archivos con terraform.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar