

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amplify 如何将缓存配置应用于应用程序
<a name="cache-configuration-type"></a>

为了管理应用程序的缓存，Amplify 通过检查应用程序的平台类型和重写规则来确定所提供的内容类型。对于 `Compute` 应用程序，Amplify 还会检查部署清单中的路由规则。

**注意**  
应用程序的平台类型由 Amplify Hosting 在部署期间进行设置。SSG（静态）应用程序设置为平台类型 `WEB`。SSR 应用程序（Next.js 12 或更高版本）设置为平台类型 `WEB_COMPUTE`。

Amplify 识别以下四种类型的内容，并应用指定托管式缓存策略。

**静态**  
使用 `WEB` 平台的应用程序提供的内容，或 `WEB_COMPUTE` 应用程序中的静态路由。  
此内容使用 Amplify-StaticContent 缓存策略。

**图像优化**  
`WEB_COMPUTE` 应用程序中的 `ImageOptimization` 路由提供的图像。  
此内容使用 Amplify-ImageOptimization 缓存策略。

**计算**  
`WEB_COMPUTE` 应用程序中的 `Compute` 路由提供的内容。这包括所有服务器端渲染（SSR）的内容。  
此内容使用 Amplify-Default 或 Amplify-DefaultNoCookies 缓存策略，具体取决于在 Amplify `App` 上设置的 `cacheConfig.type` 值。

**反向代理**  
由与反向代理重写自定义规则匹配的路径提供的内容。有关创建此自定义规则的更多信息，请参阅《使用重定向》**一章中的[反向代理重写](redirect-rewrite-examples.md#reverse-proxy-rewrite)。  
此内容使用 Amplify-Default 或 Amplify-DefaultNoCookies 缓存策略，具体取决于在 Amplify `App` 上设置的 `cacheConfig.type` 值。

## 了解 Amplify 的托管式缓存策略
<a name="managed-cache-policies-amplify"></a>

Amplify 使用以下预定义的托管式缓存策略来优化您的托管应用程序的默认缓存配置。
+ Amplify-Default
+ Amplify-DefaultNoCookies
+ Amplify-ImageOptimization
+ Amplify-StaticContent

### Amplify-Default 托管式缓存策略设置
<a name="managed-cache-policy-amplify-default"></a>

[在 CloudFront 控制台中查看此政策](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/4d1d2f1d-3a71-49ad-9e08-7ea5d843a556)

此策略适合用于作为 [AWS Amplify](https://aws.amazon.com/amplify/) Web 应用程序的源。

此策略包含以下设置：
+ **最小 TTL：**0 秒
+ **最大 TTL：**31536000 秒（一年）
+ **原定设置 TTL：**0 秒
+ **缓存键中包含的标头：**
  + `Authorization`
  + `Accept`
  + `CloudFront-Viewer-Country`
  + `Host`
+ **缓存键中包含的 Cookie：**包含所有 Cookie。
+ **缓存键中包含的查询字符串：**包含所有查询字符串。
+ **缓存压缩对象设置：**Gzip 和 Brotli 已启用。

### Amplify-DefaultNoCookies 托管缓存策略设置
<a name="managed-cache-policy-amplify-defaultnocookies"></a>

[在 CloudFront 控制台中查看此政策](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/a6bad946-36c3-4c33-aa98-362c74a7fb13)

此策略适合用于作为 [AWS Amplify](https://aws.amazon.com/amplify/) Web 应用程序的源。

此策略包含以下设置：
+ **最小 TTL：**0 秒
+ **最大 TTL：**31536000 秒（一年）
+ **原定设置 TTL：**0 秒
+ **缓存键中包含的标头：**
  + `Authorization`
  + `Accept`
  + `CloudFront-Viewer-Country`
  + `Host`
+ **缓存键中包含的 Cookie：**不包含任何 Cookie。
+ **缓存键中包含的查询字符串：**包含所有查询字符串。
+ **缓存压缩对象设置：**Gzip 和 Brotli 已启用。

### Amplify-ImageOptimization 托管缓存策略设置
<a name="managed-cache-policy-amplify-imageoptimization"></a>

[在 CloudFront 控制台中查看此政策](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/1c6db51a-a33f-469a-8245-dae26771f530)

此策略适合用于作为 [AWS Amplify](https://aws.amazon.com/amplify/) Web 应用程序的源。

此策略包含以下设置：
+ **最小 TTL：**0 秒
+ **最大 TTL：**31536000 秒（一年）
+ **原定设置 TTL：**0 秒
+ **缓存键中包含的标头：**
  + `Authorization`
  + `Accept`
  + `Host`
+ **缓存键中包含的 Cookie：**不包含任何 Cookie。
+ **缓存键中包含的查询字符串：**包含所有查询字符串。
+ **缓存压缩对象设置：**Gzip 和 Brotli 已启用。

### Amplify-StaticContent 托管缓存策略设置
<a name="managed-cache-policy-amplify-staticcontent"></a>

[在 CloudFront 控制台中查看此政策](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/7e5fad67-ee98-4ad0-b05a-394999eefc1a)

此策略适合用于作为 [AWS Amplify](https://aws.amazon.com/amplify/) Web 应用程序的源。

此策略包含以下设置：
+ **最小 TTL：**0 秒
+ **最大 TTL：**31536000 秒（一年）
+ **原定设置 TTL：**0 秒
+ **缓存键中包含的标头：**
  + `Authorization`
  + `Host`
+ **缓存键中包含的 Cookie：**不包含任何 Cookie。
+ **缓存键中包含的查询字符串：**不包含任何查询字符串。
+ **缓存压缩对象设置：**Gzip 和 Brotli 已启用。