Alibaba Cloud CDN はTerraformと統合されています。 Terraformを使用して、高速化するドメイン名を追加および設定できます。 このトピックでは、Terraformを使用してCDN にドメイン名を追加し、ドメイン名を設定する方法について説明します。
始める前に
CDN を使用する前に、CDN を有効化してください。 詳細については、「CDNの有効化」「」をご参照ください。
このトピックの操作を実行するために最低限必要な権限を持つRAMユーザーを使用します。 これにより、Alibaba CloudアカウントのAccessKeyペアが漏洩するリスクが最小限に抑えられます。 必要最小限の権限を含むポリシーをRAMユーザーにアタッチする方法については、「RAMユーザーの作成」および「RAMユーザーへの権限の付与」をご参照ください。 この例では、次のポリシーが使用されています。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cdn:AddCdnDomain", "cdn:DescribeCdnDomainDetail", "cdn:DescribeDomainCertificateInfo", "cdn:ListTagResources", "cdn:DeleteCdnDomain", "cdn:BatchSetCdnDomainConfig", "cdn:DescribeCdnDomainConfigs", "cdn:DeleteSpecificConfig" ], "Resource": "*" } ] }
Terraform環境を準備します。 Terraformを使用するには、次のいずれかの方法を使用できます。
Terraform ExplorerでTerraformを使用する: Alibaba Cloudは、Terraformのオンラインランタイム環境であるTerraform Explorerを提供します。 Terraform Explorerにログインした後、Terraformをインストールする必要なくTerraformを使用できます。 詳細については、「Terraform ExplorerでのTerraformの使用」をご参照ください。 この方法は、Terraformを高速かつ便利な方法で追加費用なしで使用およびデバッグするシナリオに適しています。
Cloud ShellでTerraformを使用する: TerraformはCloud Shellにプリインストールされ、ID認証情報が設定されています。 Cloud ShellでTerraformコマンドを直接実行できます。 詳細については、「Cloud ShellでのTerraformの使用」をご参照ください。 この方法は、Terraformを高速で便利な方法で低コストで使用およびデバッグするシナリオに適しています。
オンプレミスのマシンにTerraformをインストールして構成する: この方法は、ネットワークの状態が悪い、またはカスタム開発環境が使用されているシナリオに適しています。 詳細については、「ローカルPCでのTerraformのインストールと設定」をご参照ください。
使用されたリソース
この例では、特定のリソースに対して料金が生成されます。 リソースが不要になったときにリソースを解放または退会します。
alicloud_cdn_domain_new: CDNにドメイン名を追加します。
alicloud_cdn_domain_config: CDN高速化ドメイン名のルールを設定します。
ステップ1: CDNにドメイン名を追加する
作業ディレクトリとmain.tfという名前のファイルをディレクトリに作成します。 次に、次の内容をmain.tfファイルにコピーします。
resource "random_integer" "default" { min = 10000 max = 99999 } # Add a domain name. resource "alicloud_cdn_domain_new" "domain" { domain_name = "mycdndomain-${random_integer.default.result}.alicloud-provider.cn" cdn_type = "download" scope = "overseas" sources { content = "myoss-${random_integer.default.result}.oss-rg-china-mainland.aliyuncs.com" type = "oss" priority = "20" port = 80 weight = "15" } }
次のコマンドを実行して、Terraformランタイム環境を初期化します。
terraform init
次の情報が返されると、Terraformは初期化されます。
Initializing the backend... Initializing provider plugins... ... Terraform has been successfully initialized! ...
次のコマンドを実行してドメイン名を追加します。
terraform apply
実行中に、プロンプトに従って
yes
と入力し、enterキーを押します。 コマンドが実行されるまで待ちます。 次の情報が表示される場合は、ドメイン名が追加されます。説明エラーメッセージ「code: 400、ルートドメインの所有者検証に失敗しました」が表示された場合、ドメイン名が初めてCDN に追加され、ドメイン名の所有権を検証する必要があります。 詳細については、「ドメイン名の所有権の確認」をご参照ください。
You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
ステップ2: ドメイン名のルールを設定する
次の内容をmain.tfファイルに追加します。
# Configure an IP address whitelist for the domain name. resource "alicloud_cdn_domain_config" "config-ip" { 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 plan
次のコマンドを実行して、ドメイン名のIPアドレスホワイトリストを設定します。
terraform apply
コマンドの実行中に、指示に従って
yes
と入力し、Enterを押します。 コマンドが実行されるまで待ちます。 次の情報が返された場合、ルールが設定されます。Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
結果を確認する
terraform showコマンドを実行します。
次のコマンドを実行して、Terraformによって作成されたリソースを照会します。
terraform show
CDNコンソールにログインする
CDNコンソールにログインし、追加されたドメイン名に設定されたIPアドレスブラックリストとホワイトリストを表示します。
リソースのクリア
Terraformを使用して作成または管理された上記のリソースが不要になった場合は、次のコマンドを実行してリソースを解放します。 terraform destroy
コマンドの詳細については、「一般的なコマンド」をご参照ください。
terraform destroy
例
サンプルコード
さらに多くの例を体験したい場合は、[クイックスタート] ページに移動し、対応するサービスのフォルダーにある例を表示します。