

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

# VPC Lattice 中的目标组
<a name="target-groups"></a>

VPC Lattice 目标组是运行应用程序或服务的目标或计算资源的集合。支持的目标类型包括 EC2 实例、IP 地址、Lambda 函数、应用程序负载均衡器、Amazon ECS 任务和 Kubernetes Pod。您还可以将现有服务附加到目标组。有关将 Kubernetes 与 VPC Lattice 结合使用的更多信息，请参阅 [AWS 网关 API 控制器用户指南](https://www.gateway-api-controller.eks.aws.dev/)。

每个*目标组*均用于将请求路由到一个或多个已注册的目标。在创建侦听器规则时，您可以指定目标组和条件。满足规则条件时，流量会转发到相应的目标组。您可以为不同类型的请求创建不同的目标组。例如，为一般请求创建一个目标组，为包含特定规则条件（如路径或标头值）的请求创建其他目标组。

![具有侦听器、侦听器规则和两个目标组的服务。](http://docs.aws.amazon.com/zh_cn/vpc-lattice/latest/ug/images/service.png)


您可以根据目标组来定义服务的运行状况检查设置。每个目标组均使用默认运行状况检查设置，除非您在创建目标组时将其覆盖或稍后对其进行修改。在侦听器的规则中指定目标组后，服务将持续监控向该目标组注册的所有目标的运行状况。服务将请求路由到运行正常的已注册目标。

要在规则中为服务侦听器指定目标组，目标组必须与服务位于同一账户中。

VPC Lattice 目标组与弹性负载均衡提供的目标组类似，但不可互换。

**Topics**
+ [创建目标组](create-target-group.md)
+ [注册目标](register-targets.md)
+ [配置运行状况检查](target-group-health-checks.md)
+ [路由配置](#target-group-routing-configuration)
+ [路由算法](#target-group-routing-algorithm)
+ [Target type](#target-type)
+ [IP 地址类型](#target-group-ip-address-type)
+ [HTTP 目标](http-targets.md)
+ [Lambda 函数即目标](lambda-functions.md)
+ [作为目标的应用程序负载均衡器](alb-target.md)
+ [协议版本](#target-group-protocol-version)
+ [更新标签](target-group-tags.md)
+ [删除目标组](delete-target-group.md)

## 路由配置
<a name="target-group-routing-configuration"></a>

默认情况下，服务会使用您在创建目标组时指定的协议和端口号，将请求路由到目标。此外，您可以覆盖在将目标注册到目标组时用于将流量路由到目标的端口。

目标组支持以下协议和端口：
+ **协议**：HTTP、HTTPS、TCP
+ **端口**：1-65535

如果目标组配置了 HTTPS 协议或使用 HTTPS 运行状况检查，则与目标的 TLS 连接将使用来自监听器的安全策略。VPC Lattice 使用您在目标上安装的证书与目标建立 TLS 连接。VPC 莱迪思不验证这些证书。因此，您可以使用自签名证书或已过期的证书。VPC Lattice和目标之间的流量在数据包级别进行身份验证，因此即使目标上的证书无效，也不会面临 man-in-the-middle攻击或欺骗的风险。

只有 T [LS 侦听器支持 T](tls-listeners.md) CP 目标组。

## 路由算法
<a name="target-group-routing-algorithm"></a>

默认情况下，使用循环路由算法将请求路由到运行状况良好的目标。

当 VPC Lattice 服务收到请求时，会使用以下流程：

1. 按优先级顺序评估侦听器规则以确定要应用的规则。

1. 使用默认的循环算法，从规则操作的目标组中选择一个目标。每个目标组的路由都是单独进行的，即使某个目标已在多个目标组中注册。

如果目标组仅包含运行状况不良的注册目标，则会将请求路由到所有目标，而不考虑其运行状况如何。这意味着，如果所有目标同时未通过运行状况检查，则 VPC Lattice 服务将故障打开。故障打开的作用是根据轮循算法，允许流量进入所有目标，无论其运行状况如何。

VPC Lattice 支持可用区 (AZ) 关联性来路由流量。当客户端向 VPC Lattice 发送请求时，VPC Lattice 会使用与客户端位于同一可用区的服务或资源的 IP 地址进行响应。如果该可用区不可用，VPC Lattice 将使用其他 AZs可用区的 IP 地址进行响应。从 VPC Lattice 到目标，路由是指向可能分布在各 AZs处的目标。此外，VPC Lattice 不收取可用区间数据传输费用。

## Target type
<a name="target-type"></a>

创建目标组时，指定其目标类型，此类型将确定您在向此目标组注册目标时指定的目标的类型。创建目标组后，您无法更改其目标类型。

以下是可能的目标类型：

`INSTANCE`  
这些目标通过实例 ID 指定。

`IP`  
目标是 IP 地址。

`LAMBDA`  
目标是 Lambda 函数。

`ALB`  
目标是应用程序负载均衡器。

**注意事项**
+ 如果目标类型为 `IP`，则必须为目标组指定来自 VPC 子网的 IP 地址。如果需要从此 VPC 外部注册 IP 地址，请创建类型为 `ALB` 的目标组，并向应用程序负载均衡器注册 IP 地址。
+ 如果目标类型为 `IP`，则无法注册 VPC 端点或公开可路由 IP 地址。
+ 如果目标类型为 `LAMBDA`，则可以注册单个 Lambda 函数。当服务收到对 Lambda 函数的请求时，将会调用 Lambda 函数。如果要向服务注册多个 lambda 函数，则需要使用多个目标组。
+ 当目标类型为时`ALB`，您可以将单个内部 Application Load Balancer 注册为最多两个 VPC Lattice 服务的目标。为此，请向两个单独的目标组注册应用程序负载均衡器，这两个目标组用于两个不同的 VPC Lattice 服务。此外，目标应用程序负载均衡器必须至少有一个侦听器，其端口与目标组端口匹配。
+ 您可以在启动时自动向VPC Lattice目标组注册您的ECS任务。该目标组必须有一个目标类型 `IP`。有关更多信息，请参阅[亚马逊*弹性容器服务开发人员指南中的将 VPC Lattice 与您的 Amazon ECS 服务*配合使用](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-vpc-lattice.html)。

  或者，使用类型`ALB`为 VPC Lattice 目标群组的 Amazon ECS 服务注册应用程序负载均衡器。有关更多信息，请参阅《[亚马逊*弹性容器服务开发人员指南》中的使用负载平衡来分配 Amazon ECS 服务*流量](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)。
+ 要将 EKS 容器组注册为目标，请使用 [AWS 网关 API 控制器](https://www.gateway-api-controller.eks.aws.dev/)，该控制器从 Kubernetes 服务获取 IP 地址。
+ 如果目标组协议是 TCP，则仅支持的目标类型是`INSTANCE``IP`、或`ALB`。

## IP 地址类型
<a name="target-group-ip-address-type"></a>

当您创建目标类型为 `IP` 的目标组时，您可以为目标组指定 IP 地址类型。此操作指定负载均衡器使用何种类型的地址向目标发送请求，以及运行状况检查。可能的值为 `IPv4` 和 `IPv6`。默认为 `IPV4`。

**注意事项**
+ 如果您创建的 IP 地址类型为的目标组`IPv6`，则您为该目标组指定的 VPC 必须具有 IPv6 地址范围。
+ 向目标组注册的 IP 地址必须与目标组的 IP 地址类型匹配。例如，如果目标组的 IP IPv6 地址类型为，则无法在目标组中注册该地址`IPv4`。
+ 向目标组注册的 IP 地址必须在您为目标组指定 VPC 的 IP 地址范围内。

## 协议版本
<a name="target-group-protocol-version"></a>

默认情况下，服务使用 HTTP/1.1 向目标发送请求。您可以通过协议版本使用 HTTP/2 或 gRPC 向目标发送请求。

下表汇总了请求协议和目标组协议版本组合的结果。


| 请求协议 | 协议版本 | 结果 | 
| --- | --- | --- | 
| HTTP/1.1 | HTTP/1.1 | 成功 | 
| HTTP/2 | HTTP/1.1 | 成功 | 
| gRPC | HTTP/1.1 | 错误 | 
| HTTP/1.1 | HTTP/2 | 错误 | 
| HTTP/2 | HTTP/2 | 成功 | 
| gRPC | HTTP/2 | 如果目标支持 grPC，则成功 | 
| HTTP/1.1 | gRPC | 错误 | 
| HTTP/2 | gRPC | 如果 POST 请求，则成功 | 
| gRPC | gRPC | 成功 | 

**gRPC 协议版本的注意事项**
+ 唯一支持的侦听器协议是 HTTPS。
+ 唯一支持的目标类型是 `INSTANCE` 和 `IP`。
+ 服务会解析 gRPC 请求，并根据包、服务和方法将 gRPC 调用路由到相应的目标组。
+ 不能将 Lambda 函数用作目标。

**HTTP/2 协议版本的注意事项**
+ 唯一支持的侦听器协议是 HTTPS。您可以为目标组协议选择 HTTP 或 HTTPS。
+ 唯一支持的侦听器规则是正向和固定响应。
+ 唯一支持的目标类型是 `INSTANCE` 和 `IP`。
+ 服务支持来自客户端的流。服务不支持发往目标的流。