Terraform-Provider-Plugin
Wenn Sie Terraform von HashiCorp zur Bereitstellung Ihrer Infrastruktur verwenden und Transloadit als Teil davon einsetzen möchten, können Sie die Templates von Transloadit mit Terraform verwalten. So lassen sich neben Ihrer App auch deren Anweisungen zum Encoding reproduzierbar bereitstellen.
Installation
Als Voraussetzung muss zunächst Terraform 0.12.x auf Ihrem System installiert sein.
Zur Installation des Transloadit Terraform Providers empfehlen wir die Binärdistributionen auf der Seite Releases. Die Binärdateien sind für Linux, macOS (darwin) und Windows verfügbar (jeweils für die amd64-Architektur).
So laden Sie das neueste Release für Ihr Betriebssystem herunter und entpacken es:
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
Laden Sie den Provider herunter und entpacken Sie ihn
nach %APPDATA%\terraform.d\plugins.
Verwendung
Hier finden Sie ein kurzes Beispiel. Ausführlichere Anweisungen finden Sie im Website-Verzeichnis. Wenn Sie mehrere Apps in Transloadit verwenden möchten, zeigen die Beispiele, wie Sie dies strukturieren, indem Sie pro App einen Provider-Alias übergeben.
In 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
}
Führen Sie nun über die CLI Folgendes aus:
terraform init # only required on the first run after using a new Provider (version)
terraform plan
Dokumentation
Die vollständige Dokumentation finden Sie auf GitHub.