# 詳細構成

## インテグレーショントリガーのカスタマイズ

場合によっては、単一のFastlyサービストラフィック内でNetaceaインテグレーションをトリガーするトラフィックをカスタマイズする必要があることがあります。

これには以下のようなさまざまな理由が考えられます：

* 同一のFastlyサービス上に複数のドメインが存在し、Netaceaが各ドメインを個別のDatastreamモデルセットで保護している場合
* 同一のFastlyサービス上に複数のドメインが存在するが、Netaceaがそれらのドメインの一部のみを保護している場合
* Netaceaインテグレーションを限定されたパスウェイセットのみでトリガーおよび保護するように制限する必要がある場合
* Netaceaインテグレーションが特定の条件に基づいて[異なる動作をする](https://docs.netacea.com/jp/gai-yao/integration-modes)必要がある場合

カスタマイズされたトリガーをサポートするには、以下に概説する手順に従ってください。

{% hint style="warning" %}
この設定を行う前に、必ずNetaceaチームと手順について協議してください
{% endhint %}

## Netaceaディクショナリの更新

標準の[インストールおよび設定ガイド](https://docs.netacea.com/jp/netacea-puraguin/fastly-magento/installation-and-configuration/..#create-an-empty-dictionary)の一部として設定されたNetaceaディクショナリを更新します。ディクショナリは、通常[Netaceaモジュール ](https://docs.netacea.com/jp/netacea-puraguin/fastly-magento/installation-and-configuration/..#apply-customer-keys-to-the-module)で設定される変数と値を含むように更新する必要があります。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-eb65ad33ebb0f8f1b5f89ec0ba1f265d35d86a1e%2Fimage%20(104).png?alt=media" alt=""><figcaption></figcaption></figure>

Netaceaモジュールのフィールドは空白に設定する必要があります：

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-0644bb0ac8cefcd88072c61b6f54687eb96f13c0%2Fimage%20(102).png?alt=media" alt=""><figcaption></figcaption></figure>

## recv\_configure.vclの作成とカスタマイズ

最後に、Netaceaインテグレーションのトリガー方法を定義する条件文を含むrecv\_configure.vclを作成する必要があります：

* Fastlyサービス上で行われるリクエストのサブセットでインテグレーションをトリガーさせる。
* Fastlyサービス上でトラフィックがインテグレーションをトリガーする際に使用されるDatastream認証情報を定義する。

Stores → Configuration → Advanced → System → Full Page Cache → Fastly Configuration → Custom VCL Snippetsに移動し、「Create」をクリックします。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-637be77c061c98e7dbed7db4802fdef3cd5aabbb%2Fimage%20(106).png?alt=media" alt=""><figcaption></figcaption></figure>

#### 選択的トリガー

以下の例では、ログイン固有のリクエストパスウェイでインテグレーションをトリガーさせます。

<pre><code>set req.http.x-netacea:edge_config_key_prefix = "";
declare local var.should_run_netacea BOOL;

set var.should_run_netacea = false;

# Must enable Netacea on the following paths if using captcha:
if (!var.should_run_netacea) {
  if (req.url.path ~ "^/AtaVerifyCaptcha|^\/Mitigations\/") {
    set var.should_run_netacea = true;
  }
}

<strong>if (!var.should_run_netacea) {
</strong>  if (req.url.path ~ "\/.*\/(login)\/") {
    set var.should_run_netacea = true;
  }
}

if (var.should_run_netacea) {
  call netacea_check_req;
}
</code></pre>

#### トリガーの分割

以下の例では、リクエストに関連付けられたドメインに基づいて、インテグレーションが異なるDatastream認証情報を使用するようにします。

```
declare local var.should_run_netacea BOOL;
set var.should_run_netacea = false;

# Must enable Netacea on the following paths if using captcha:
if (!var.should_run_netacea) {
  if (req.url.path ~ "^/AtaVerifyCaptcha|^\/Mitigations\/") {
    set var.should_run_netacea = true;
  }
}

#
if (!var.should_run_netacea) {
  if (req.http.host ~ "example.com") {
    set var.should_run_netacea = true;
    set req.http.x-netacea:edge_config_key_prefix = "dsA_";
  }
}

if (!var.should_run_netacea) {
  if (req.http.host ~ "example2.com") {
    set var.should_run_netacea = true;
    set req.http.x-netacea:edge_config_key_prefix = "dsB_";
  }
}

if (var.should_run_netacea) {
  call netacea_check_req;
}

```

## ログ配送の更新

最後に、Netaceaチームが定義した要件に基づいて、配送設定を更新する必要がある場合があります。
