

# 分配租户自定义
<a name="tenant-customization"></a>

使用多租户分配时，分配租户会继承多租户分配配置。但是，可以在分配租户级别自定义某些设置。

可以自定义以下各项：
+ **参数**：参数是可用于源域或源路径的键值对。请参阅[参数如何与分配租户结合使用](#tenant-customize-parameters)。
+ **AWS WAF Web ACL（V2）**：可以为分配租户指定单独的 Web ACL，这将*覆盖*用于多租户分配的 Web ACL。还可以为特定的分配租户禁用此设置，这意味着该分配租户将不会从多租户分配继承 Web ACL 保护。有关更多信息，请参阅 [AWS WAF Web ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL)。
+ **地理限制**：您为分配租户指定的地理限制将*覆盖*多租户分配的任何地理限制。例如，如果您在多租户分配中屏蔽德国（DE），则所有关联的分配租户也将屏蔽 DE。但是，如果您对特定的分配租户支持 DE，则该分配租户设置将覆盖多租户分配的设置。有关更多信息，请参阅 [限制您的内容的地理分配](georestrictions.md)。
+ **失效路径**：为分配租户指定要失效的内容的文件路径。有关更多信息，请参阅 [使文件失效](Invalidation_Requests.md)。
+ **自定义 TLS 证书**：您为分配租户指定的 AWS Certificate Manager（ACM）证书是对多租户分配中提供的证书的补充。但是，如果多租户分配证书和分配租户证书都涵盖同一个域，则使用租户证书。有关更多信息，请参阅 [为 CloudFront 分配租户申请证书](managed-cloudfront-certificates.md)。
+ **域名**：您必须为每个分配租户指定至少一个域名。

## 参数如何与分配租户结合使用
<a name="tenant-customize-parameters"></a>

参数是可用于占位符值的键值对。定义要在多租户分配中使用的参数，并指定它们是否为必需参数。

在多租户分配中定义参数时，您可以选择是否需要在分配租户级别输入这些参数。
+ 如果您在多租户分配中将参数定义为*必需*的参数，则必须在分配租户级别输入这些参数。（不继承这些参数）。
+ 如果参数*不是必需的*，则可以在多租户分配中提供由分配租户继承的默认值。

您可以在以下属性中使用参数：
+ 源域名
+ 源路径

在多租户分配中，最多可以为之前的每个属性定义两个参数。

## 示例参数
<a name="examples-parameters"></a>

请参阅以下示例，了解如何将参数用于域名和源路径。

**域名参数**

在多租户分配配置中，您可以为源域名定义一个参数，如下例所示：

**Amazon S3**
+ `{{parameter1}}.amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`
+ `{{parameter1}}–amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`

**自定义源**
+ `{{parameter1}}.lambda-url.us-east-1.on.aws`
+ `{{parameter1}}.mediapackagev2.ap-south-1.amazonaws.com`

创建分配租户时，请指定要用于 `parameter1` 的值。

```
"Parameters": [
  {
    "Name": "parameter1",
    "Value": "mycompany-website"
  }
]
```

使用前面在多租户分配中指定的示例，分配租户的源域名解析为以下内容：
+ `mycompany-website.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website–amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website.lambda-url.us-east-1.on.aws`
+ `mycompany-website.mediapackagev2.ap-south-1.amazonaws.com`

**源路径参数**

同样，您可以为多租户分配中的源路径定义参数，如下例所示：
+ `/{{parameter2}}`
+ `/{{parameter2}}/test`
+ `/public/{{parameter2}}/test`
+ `/search?name={{parameter2}}`

创建分配租户时，请指定要用于 `parameter2` 的值。

```
"Parameters": [
  {
    "Name": "parameter2",
    "Value": "myBrand"
  }
]
```

使用前面在多租户分配中指定的示例，分配租户的源路径解析为以下内容：
+ `/myBrand`
+ `/myBrand/test`
+ `/public/myBrand/test`
+ `/search?name=myBrand`



**Example 示例**  
您想为客户创建多个网站（租户），并且需要确保每个分配租户资源使用正确的值。  

1. 您可以创建多租户分配，并包含两个用于分配租户配置的参数。

1. 对于源域名，创建一个名为 *customer-name* 的参数并指定该参数为必需的。在 S3 存储桶之前输入该参数，使其显示为：

   `{{customer-name}}.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`.

1. 对于源路径，创建名为 *my-theme* 的第二个参数，并指定它是可选的，默认值为 *basic*。源路径显示为：`/{{my-theme}}`

1. 当您创建分配租户时：
   + 对于域名，您必须为 *customer-name* 指定一个值，因为它在多租户分配中标记为必填项。
   + 对于源路径，您可以选择为 *my-theme* 指定一个值或使用默认值。