> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-update-anonymous-sessons-ea.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Terraform でカスタム電話プロバイダーを設定する

> Terraform Auth0 provider を使用してカスタム電話プロバイダーを設定する方法を説明します

Terraform Auth0 provider を使用して、[カスタム電話プロバイダー](/docs/ja-jp/customize/phone-messages/configure-phone-messaging-providers/configure-a-custom-phone-provider)を設定できます。Terraform Auth0 provider は、Auth0 テナントを設定するために [Auth0 Management API](https://auth0.com/docs/api/management/v2) と連携する際に使用されます。詳しくは、Terraform の [Auth0 Provider](https://registry.terraform.io/providers/auth0/auth0/latest/docs) のドキュメントを参照してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  * Terraform を使用してカスタム電話プロバイダーを設定する場合は、Auth0 テナントで既存のカスタム[電話](/docs/ja-jp/customize/phone-messages/configure-phone-messaging-providers/configure-a-custom-phone-provider)プロバイダーを削除してください。
  * Auth0 では、次のトリガーに関連付けられた Actions に対して、設定できる Action は最大 1 つです: custom-phone-provider および custom-email-provider。
</Callout>

以下の手順では、Terraform を使用してカスタム電話プロバイダーを設定する方法を説明します。

1. [`auth0_action`](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/phone_provider) を作成します:

```terraform lines theme={null}
resource "auth0_action" "custom_phone_provider" {
  name    = "Custom Phone Provider"
  runtime = "node22"
  deploy  = true
  code    = <<-EOT
    /**
    * 電話通知の送信中に実行されるハンドラー
    * @param {Event} event - ユーザーおよびログイン時のコンテキストに関する詳細情報。
    * @param {CustomPhoneProviderAPI} api - 電話通知の送信動作を変更するためのメソッドとユーティリティ。
    */
    exports.onExecuteCustomPhoneProvider = async (event, api) => {
      // ここにコードを記述します
      return;
    };
  EOT
  supported_triggers {
    id      = "custom-phone-provider"
    version = "v1"
  }
}
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Terraform の `auth0_action` を `auth0_trigger_action` にバインドするには、auth0\_action で `deploy = true` を設定します。詳しくは、Terraform の [auth0\_action](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/action) のドキュメントを参照してください。
</Callout>

2. `auth0_action` を custom-phone-provider の `auth0_trigger_action` にバインドします:

```terraform lines theme={null}
resource "auth0_trigger_action" "custom_phone_provider" {
  trigger = "custom-phone-provider"
  actions {
    id           = auth0_action.custom_phone_provider.id
    display_name = auth0_action.custom_phone_provider.name
  }
  depends_on = [
    auth0_action.custom_phone_provider
  ]
}
```

3. `auth0_action` を使用するように `auth0_phone_provider` リソースを設定します:

```terraform lines theme={null}
resource "auth0_phone_provider" "custom_phone_provider" {
  depends_on = [auth0_trigger_actions.custom_phone_provider] # `custom-phone-provider` を supported_triggers として、アクションが先に作成されていることを確認する
  name       = "custom"                         # カスタム実装を示す
  disabled   = false                            # デフォルトの電話プロバイダーを無効にする
  configuration {
    delivery_methods = ["text", "voice"]
  }
  credentials {}
},
```

詳細については、Terraform の [auth0\_phone\_provider](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/phone_provider) ドキュメントをご覧ください。

<h2 id="troubleshoot">
  トラブルシューティング
</h2>

**シナリオ: Terraform で設定したカスタム電話プロバイダーが反映されず、<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 のメイン製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> に別の Action が表示される。**

`deploy: true` が設定されたカスタムプロバイダー用の Actions が複数存在する可能性があります。Auth0 では、`custom-phone-provider` および `custom-email-provider` の各トリガーに関連付けられる Action は、それぞれ最大 1 つまでです。

* この状況が発生した場合は、削除すべき重複を特定するために、[Actions を一覧表示](https://auth0.com/docs/api/management/v2/actions/get-actions)することをおすすめします。
* 複数の方法 (Terraform、Auth0 Dashboard、<Tooltip tip="Management API: お客様が管理タスクを実行できるようにする製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip>、および/または Auth0 SDK) でカスタムプロバイダーを管理した後にこの状況が発生した場合は、カスタムプロバイダーの設定をリセットすることをおすすめします。カスタムプロバイダーの管理に複数の方法を併用しないことを推奨します。

カスタム電話プロバイダーをリセットするには、[Auth0 Dashboard > Branding > Phone Provider](https://manage.auth0.com/#/phone/templates/phone/provider) に移動します。次に、Provider Configuration の **Reset** ボタンを選択して、カスタムプロバイダーをデフォルトの状態に戻します。
