Plugin de provider Terraform
Si vous utilisez Terraform de HashiCorp pour provisionner votre infrastructure et souhaitez y intégrer le déploiement de Transloadit, vous pouvez placer les Templates de Transloadit sous le contrôle de Terraform. Ainsi, en même temps que votre application, ses instructions d’encodage peuvent être provisionnées de manière reproductible.
Installation
Installez une version actuelle de la CLI Terraform. Terraform sélectionne le paquet du provider adapté à votre plateforme depuis le registre.
Créez un répertoire de travail :
mkdir -p transloadit-terraform
cd transloadit-terraform
Dans ce répertoire, créez versions.tf avec l’exigence du
provider Transloadit du registre :
terraform {
required_providers {
transloadit = {
source = "transloadit/transloadit"
version = "~> 0.8.0"
}
}
}
Cette contrainte sélectionne les versions correctives compatibles de la série 0.8. La commande terraform init,
présentée ci-dessous, installe le provider et enregistre la version sélectionnée dans .terraform.lock.hcl.
Versionnez ce fichier de verrouillage avec votre configuration afin d’obtenir des installations
reproductibles. Consultez les exigences relatives aux providers
de Terraform pour la sélection des versions et les mises à jour.
Utilisation
Voici un exemple rapide. Des instructions plus détaillées se trouvent dans le répertoire website. Si vous comptez utiliser plusieurs applications dans Transloadit, consultez les exemples pour savoir comment configurer un alias de provider par application.
Dans main.tf :
provider "transloadit" {
auth_key = "<TRANSLOADIT-AUTH-KEY>"
auth_secret = "<TRANSLOADIT-AUTH-SECRET>"
}
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": "v7"
},
"thumbed": {
"use": ":original",
"robot": "/video/thumbs",
"count": 4,
"ffmpeg_stack": "v7"
},
"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
}
Depuis le même répertoire, initialisez le provider et prévisualisez les modifications :
terraform init
terraform plan
Documentation
Consultez GitHub pour la documentation complète.