# Terraform-Provider-Plugin

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

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](https://www.terraform.io/downloads.html) 0.12.x auf Ihrem System installiert sein.

Zur Installation des Transloadit Terraform Providers empfehlen wir die Binärdistributionen auf der Seite [Releases](https://github.com/transloadit/terraform-provider-transloadit/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

![](/_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

[Laden Sie den Provider herunter](https://github.com/transloadit/terraform-provider-transloadit/releases) und entpacken Sie ihn nach `%APPDATA%\terraform.d\plugins`.

## Verwendung

Hier finden Sie ein kurzes Beispiel. Ausführlichere Anweisungen finden Sie im[Website-Verzeichnis](https://github.com/transloadit/terraform-provider-transloadit/blob/main/website/). Wenn Sie mehrere Apps in Transloadit verwenden möchten, zeigen die[Beispiele](https://github.com/transloadit/terraform-provider-transloadit/blob/main/examples/multi-app), wie Sie dies strukturieren, indem Sie pro App einen Provider-Alias übergeben.

In `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
}

```

Führen Sie nun über die CLI Folgendes aus:

![](/_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

```

## Dokumentation

Die vollständige Dokumentation finden Sie auf [GitHub](https://github.com/transloadit/terraform-provider-transloadit#readme).
