Terraform を使用して、オリジンから ESA への応答における HTTP レスポンスヘッダーを追加、削除、または変更できます。たとえば、リクエストに基づいて CORS ヘッダーを動的に設定できます。
Terraform のインストールと権限の構成
コンピューターへの Terraform のインストールと構成
コンピューターで Terraform を使用する方法の詳細については、「Terraform のインストールと構成」をご参照ください。
RAM ユーザーの AccessKey ペアを作成します。Alibaba Cloud アカウント (root ユーザー) は、リソースに対するすべての権限を持っています。Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、ご利用のリソースは重大なリスクにさらされます。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「AccessKey ペアの作成」をご参照ください。
-
認証情報を保存するための環境変数を作成します。
AccessKey は、AccessKey Management ページで作成および表示できます。
環境変数が構成されていない場合、Terraform テンプレートの実行時に本人確認に失敗します。
オンラインサービスの使用 (インストールや権限構成は不要)
Terraform をインストールしたくない場合は、オンラインサービス Cloud Shell を使用できます。
Alibaba Cloud Cloud Shell は、無料の運用・保守 (O&M) プロダクトです。Terraform コンポーネントがプリインストールされており、認証情報が構成済みです。そのため、Cloud Shell で Terraform コマンドを直接実行できます。詳細については、「Terraform を使用したリソースの作成」をご参照ください。
Cloud Shell で Terraform を使用する場合、その削除機能によりデータ損失が発生する可能性があります。Cloud Shell は、デバッグなどのシンプルで迅速な操作にのみ使用することを推奨します。使用制限の詳細については、「使用制限」をご参照ください。
リソース
サイト情報の照会: alicloud_esa_sites
インバウンドレスポンスヘッダー変更の構成: alicloud_esa_http_incoming_response_header_modification_rule
インバウンドレスポンスヘッダー変更ルールの構成
main.tfという名前の構成ファイルを作成し、次のコードをコピーします。このコードは、ご利用のサイトのインバウンドレスポンスヘッダー変更ルール (オリジンから ESA へ) を作成します。# 1. 既存のサイトに関する情報を照会します。 data "alicloud_esa_sites" "default" { site_name = "<span class="var-span" contenteditable="true" data-var="DOMAIN">{{DOMAIN}}"</span> # Edge Security Acceleration (ESA) に追加されたサイトのドメイン名に置き換えてください。 } # 2. インバウンドレスポンスヘッダー (オリジンから ESA へ) を変更します。一致する Origin ヘッダーを持つリクエストに対する応答で Access-Control-Allow-Origin ヘッダーを設定します。 resource "alicloud_esa_http_incoming_response_header_modification_rule" "example" { site_id = data.alicloud_esa_sites.default.sites[0].site_id rule_name = "cors-mirror-origin-example" rule_enable = "on" rule = "(http.request.headers[\"origin\"] in {\"http://www.example.com\" \"https://www.example.com\" \"http://image.example.com\" \"https://image.example.com\"})" response_header_modification { operation = "add" name = "Access-Control-Allow-Origin" value = "http.request.headers[\"origin\"]" type = "dynamic" } }構成ファイルが含まれるディレクトリに移動します。次に、次のコマンドを実行して Terraform 環境を初期化します。
terraform init
次のコマンドを実行して、Terraform ファイルの構文と構成を検証します。
terraform validate出力が次の図のようであれば、検証は成功です。

次のコマンドを実行して、適用される変更をプレビューします。
terraform plan次のコマンドを実行して、Terraform スクリプトを実行します。
terraform applyプロンプトが表示されたら、
yesと入力して操作を確認します。
結果の検証
terraform show の実行
作業ディレクトリで次のコマンドを実行して、Terraform が作成したリソースの詳細を表示します。
terraform showコンソールでの検証
ESA コンソールで、サイト管理 を選択し、サイト 列で対象のサイトをクリックします。
左側のナビゲーションウィンドウで、 を選択すると、作成されたルールとその構成を表示できます。
(オプション) リソースのクリーンアップ
Terraform によって作成または管理されたリソースが不要になった場合は、terraform destroy コマンドを実行してリソースを解放できます。
terraform destroyリファレンス
response_header_modification.operation パラメーター
Terraform の alicloud_esa_http_incoming_response_header_modification_rule リソースの response_header_modification ブロックにある operation パラメーターは、次の値をサポートします。
値 | 説明 | 説明 |
| 追加 | レスポンスヘッダーを追加します。 |
| 削除 | 指定された名前のレスポンスヘッダーを削除します。 |
| 変更 | 既存のレスポンスヘッダーの値を変更します。 |
response_header_modification.type パラメーター
type パラメーターは、ヘッダー値が静的文字列か動的式かを指定します。
値 | 説明 | 説明 |
| 静的 |
|
| 動的 |
|