# Plugin del proveedor de Terraform

[transloadit/terraform-provider-transloadit](https://github.com/transloadit/terraform-provider-transloadit)

Si usas Terraform de HashiCorp para aprovisionar tu infraestructura y quieres implementar Transloadit como parte de ella, quizá te interese saber que puedes gestionar los Templates de Transloadit con Terraform, de modo que, junto con tu aplicación, sus instrucciones de encoding puedan aprovisionarse de manera reproducible.

## Instalación

Como requisito previo, primero debes tener [Terraform](https://www.terraform.io/downloads.html) 0.12.x instalado en tu sistema.

La forma recomendada de instalar el proveedor de Terraform para Transloadit es usar las distribuciones binarias de la página de [versiones](https://github.com/transloadit/terraform-provider-transloadit/releases). Los binarios están disponibles para Linux, macOS (darwin) y Windows (todos para la arquitectura amd64).

A continuación, se explica cómo descargar y extraer la versión más reciente para tu sistema operativo:

### Linux

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
mkdir -p ~/.terraform.d/plugins/ && cd !$
curl -sSL https://github.com/transloadit/terraform-provider-transloadit/releases/download/v0.1.0/terraform-provider-transloadit_linux_amd64.tar.gz | tar xvz
cd -

```

### macOS

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
mkdir -p ~/.terraform.d/plugins/ && cd !$
curl -sSL https://github.com/transloadit/terraform-provider-transloadit/releases/download/v0.1.0/terraform-provider-transloadit_darwin_amd64.tar.gz | tar xvz
cd -

```

### Windows

[Descarga](https://github.com/transloadit/terraform-provider-transloadit/releases) y descomprime el proveedor en `%APPDATA%\terraform.d\plugins`.

## Uso

Este es un ejemplo rápido. Puedes encontrar instrucciones más detalladas en el[directorio del sitio web](https://github.com/transloadit/terraform-provider-transloadit/blob/main/website/). Si planeas usar varias aplicaciones en Transloadit, consulta los[ejemplos](https://github.com/transloadit/terraform-provider-transloadit/blob/main/examples/multi-app)para saber cómo estructurarlo mediante un alias de proveedor por aplicación.

En `main.tf`:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```hcl
provider "transloadit" {
  auth_key    = "<TRANSLOADIT-AUTH-KEY>"
  auth_secret = "<TRANSLOADIT-AUTH-SECRET>"
  version     = "0.1.0"
}

resource "transloadit_template" "my-terraform-template" {
  name     = "my-terraform-template"
  template = <<EOT
{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "encoded": {
      "use": ":original",
      "robot": "/video/encode",
      "preset": "ipad-high",
      "ffmpeg_stack": "{{stacks.ffmpeg.recommended_version}}"
    },
    "thumbed": {
      "use": ":original",
      "robot": "/video/thumbs",
      "count": 4,
      "ffmpeg_stack": "{{stacks.ffmpeg.recommended_version}}"
    },
    "exported": {
      "use": [ ":original", "encoded", "thumbed"],
      "credentials": "YOUR_S3_CREDENTIALS",
      "robot": "/s3/store"
    }
  }
}
EOT
}

output "my-terraform-template-id" {
  value = transloadit_template.my-terraform-template.id
}

```

Ahora, ejecuta lo siguiente en la CLI:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
terraform init # only required on the first run after using a new Provider (version)
terraform plan

```

## Documentación

Consulta [GitHub](https://github.com/transloadit/terraform-provider-transloadit#readme)para ver la documentación completa.
