Alibaba Cloud CDN はTerraformと統合されています。 Terraformを使用して、高速化するドメイン名を追加および設定できます。 Terraformは設定プロセスを簡素化します。 このトピックでは、Terraformを使用してAlibaba Cloud CDN にドメイン名を追加し、ドメイン名を設定する方法について説明します。
背景情報
Terraformの詳細については、「Terraformとは」をご参照ください。
前提条件
Terraformがインストールされ、設定されます。 Terraformは、macOS、Windows、Linuxなどの主流のオペレーティングシステムでサポートされています。 詳細については、「ローカルPCでのTerraformのインストールと設定」をご参照ください。
オンプレミスのマシンにTerraformがインストールされていない場合は、Cloud Shellを使用してTerraformをインストールおよび設定できます。 Cloud Shellは、すぐに使用できるTerraformコンポーネントと資格情報を提供する無料のサービスです。 Cloud ShellでTerraformコマンドを実行できます。 O&M の効率が向上します。 詳細については、「Cloud ShellでのTerraformの使用」をご参照ください。
手順
次の手順は、Cloud ShellでTerraformを実行してAlibaba Cloud CDN にドメイン名を追加する方法を示しています。
ブラウザを開き、アドレスバーにhttps://shell.alibabacloud.com/ と入力して、Cloud Shellにアクセスします。
Cloud Shellの使用方法の詳細については、「Cloud Shellの使用」をご参照ください。
Cloud Shellにログインします。
Terraformテンプレートを作成します。
Terraformテンプレートを使用して、プロバイダーを初期化し、リソース設定を追加できます。 Terraform構文を使用してTerraformテンプレートを作成し、テンプレートを
として保存します。tf
ファイル。Terraformを使用してドメイン名を追加および設定するための構文については、alicloud_cdn_domain_configページをご覧ください。
次のvimコマンドを実行してテンプレートを作成します。
シェル @ Alicloud:~$ vim provider.tf
次のコードブロックは、provider.tfファイルのサンプルコンテンツを示しています。
説明Terraform公式WebサイトのAlibaba Cloud ProviderのCDNフォルダーにあるリソースパラメーターのフィールドを表示できます。
cdn_type、scope、およびsourcesフィールドの設定方法については、「AddCdnDomain」のパラメーターをご参照ください。
function_nameパラメーターのフィールドとfunction_argパラメーターの設定方法については、「ドメイン名の機能設定」をご参照ください。
# Alibaba Cloudプロバイダーを指定します。 プロバイダー "alicloud" {} # ドメイン名を追加します。 リソース "alicloud_cdn_domain_new" "domain" { domain_name = "yourcdndomain.example.com" cdn_type = "ダウンロード" scope = "海外" ソース { content = "172.16.0.1" type = "ipaddr" priority = "20" port = 80 weight = "15" } } # ドメイン名のIPアドレスホワイトリストを作成します。 リソース "alicloud_cdn_domain_config" config "{ domain_name = alicloud_cdn_domain_new.domain.domain_name function_name = "ip_allow_list_set" function_args { arg_name = "ip_list" arg_value = "192.168.0.1" } }
terraform initコマンドを実行して、Terraform設定を初期化します。
このステップでは、Terraformは
のプロバイダーフィールドを自動的に識別します。ファイルを
し、GitHubのTerraformリポジトリにリクエストを送信して、最新のリソースモジュールとプラグインをダウンロードします。 次のコマンド出力は、Terraform設定が初期化されていることを示します。* provider.alicloud: version = "~> 1.171" Terraformは正常に初期化されました!
terraform planコマンドを実行して、設定をプレビューします。
シェル @ Alicloud: 〜 $terraform plan 計画前にTerraform状態のメモリをリフレッシュします... 更新された状態は、このプランの計算に使用されますが、ローカルまたはリモート状態のストレージに保持されます。 ------------------------------------------------------------------------ 実行プランが生成され、以下に示される。 Resource actions are indicated with the following symbols: + 作成 Terraformは次のアクションを実行します。 # alicloud_cdn_domain_config.configが作成されます + リソース "alicloud_cdn_domain_config" "config" { + config_id = (適用後に既知) + domain_name = "yourcdndomain.example.com" + function_name = "ip_allow_list_set" + id = (適用後に既知) + status = (申請後に既知) + function_args { + arg_name = "ip_list" + arg_value = "192.168.0.1" } } # alicloud_cdn_domain_new.domainが作成されます + リソース "alicloud_cdn_domain_new" "domain" { + cdn_type = "download" + cname = (申請後に既知) + domain_name = "yourcdndomain.example.cn" + id = (適用後に既知) + resource_group_id = (適用後に既知) + scope = "海外" + certificate_config { + cert_name = (適用後に既知) + cert_type = (適用後に既知) + force_set = (適用後に既知) + private_key = (機密値) + server_certificate = (機密値) + server_certificate_status = (適用後に既知) } + ソース { + content = "172.16.0.1" + ポート=80 + 優先度=20 + type = "ipaddr" } } プラン: 2を追加、0を変更、0を破棄します。
terraform applyコマンドを実行して、ドメイン名とその設定をTerraformに追加します。
terraform applyコマンドを実行した後、コードが正しいことを確認するためにコードをプレビューし、yesと入力して確認する必要があります。 次に、Terraformは設定の適用を開始しますが、数分かかる場合があります。
説明各パラメーターの前のプラス記号 (
+
) は、新しいリソースを示します。 リソースを削除すると記号はマイナス記号 (-
) に変わり、リソースを再デプロイするためにパラメーターを変更するとマイナス記号とプラス記号 (-/+
) に変わります。 右矢印 (→
) は、パラメータが新しい値に設定されることを示す。シェル @ Alicloud: 〜 $terraform apply 実行プランが生成され、以下に示される。 Resource actions are indicated with the following symbols: + 作成 Terraformは次のアクションを実行します。 # alicloud_cdn_domain_config.configが作成されます + リソース "alicloud_cdn_domain_config" "config" { + config_id = (適用後に既知) + domain_name = "yourcdndomain.example.com" + function_name = "ip_allow_list_set" + id = (適用後に既知) + status = (申請後に既知) + function_args { + arg_name = "ip_list" + arg_value = "192.168.0.1" } } # alicloud_cdn_domain_new.domainが作成されます + リソース "alicloud_cdn_domain_new" "domain" { + cdn_type = "download" + cname = (申請後に既知) + domain_name = "yourcdndomain.example.com" + id = (適用後に既知) + resource_group_id = (適用後に既知) + scope = "海外" + certificate_config { + cert_name = (適用後に既知) + cert_type = (適用後に既知) + force_set = (適用後に既知) + private_key = (機密値) + server_certificate = (機密値) + server_certificate_status = (適用後に既知) } + ソース { + content = "172.16.0.1" + ポート=80 + 優先度=20 + type = "ipaddr" } } プラン: 2を追加、0を変更、0を破棄します。 Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. 値を入力: はい alicloud_cdn_domain_new.domain: 作成中... alicloud_cdn_domain_new.domain: まだ作成中です... [10秒経過] alicloud_cdn_domain_new.domain: まだ作成中です... [20秒経過] alicloud_cdn_domain_new.domain: まだ作成中です... [30秒経過] alicloud_cdn_domain_new.domain: まだ作成中です... [40秒経過]
次のコマンド出力は、設定が適用されていることを示します。 Alibaba Cloud CDN コンソールにログインし、ドメイン名とその設定を表示します。
alicloud_cdn_domain_new.domain: まだ作成中です... [7m10sが経過] alicloud_cdn_domain_new.domain: まだ作成中です... [7m20s経過] alicloud_cdn_domain_new.domain: 7m24秒後に作成完了 [d=yourcdndomain.example.com] alicloud_cdn_domain_config.config: 作成中... alicloud_cdn_domain_config.config: まだ作成中です... [10秒経過] alicloud_cdn_domain_config.config: まだ作成中です... [20秒経過] alicloud_cdn_domain_config.config: まだ作成中です... [30秒経過] alicloud_cdn_domain_config.config: 36秒後に作成完了 [d=yourcdndomain.example.com:ip_allow_list_set:238025248620544] 申請完了! リソース: 2追加、0変更、0破棄。 shell @ Alicloud:~$