Plugin del proveedor de Terraform
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 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. 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
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
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 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. Si planeas usar varias aplicaciones en Transloadit, consulta los ejemplos para saber cómo estructurarlo mediante un alias de proveedor por aplicación.
En main.tf:
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:
terraform init # only required on the first run after using a new Provider (version)
terraform plan
Documentación
Consulta GitHub para ver la documentación completa.