diff --git a/content/zh-cn/docs/reference/kubernetes-api/policy-resources/network-policy-v1.md b/content/zh-cn/docs/reference/kubernetes-api/policy-resources/network-policy-v1.md new file mode 100644 index 0000000000..aeb49ad674 --- /dev/null +++ b/content/zh-cn/docs/reference/kubernetes-api/policy-resources/network-policy-v1.md @@ -0,0 +1,1551 @@ +--- +api_metadata: + apiVersion: "networking.k8s.io/v1" + import: "k8s.io/api/networking/v1" + kind: "NetworkPolicy" +content_type: "api_reference" +description: "NetworkPolicy 描述针对一组 Pod 所允许的网络流量。" +title: "NetworkPolicy" +weight: 3 +--- + + +`apiVersion: networking.k8s.io/v1` + +`import "k8s.io/api/networking/v1"` + + +## NetworkPolicy {#NetworkPolicy} + + +NetworkPolicy 描述针对一组 Pod 所允许的网络流量。 + +
+ +- **apiVersion**: networking.k8s.io/v1 + +- **kind**: NetworkPolicy + +- **metadata** (}}">ObjectMeta) + + 标准的对象元数据。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **spec** (}}">NetworkPolicySpec) + + spec 定义特定网络策略所需的所有信息. + +- **status** (}}">NetworkPolicyStatus) + + status 是 NetworkPolicy 的当前状态。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + +## NetworkPolicySpec {#NetworkPolicySpec} + + +NetworkPolicySpec 定义特定 NetworkPolicy 所需的所有信息. + +
+ + +- **podSelector** (}}">LabelSelector), 必需 + + podSelector 选择此网络策略所适用的一组 Pod。一组 Ingress 入口策略将应用于此字段选择的所有 Pod。 + 多个网络策略可以选择同一组 Pod。 + 在这种情况下,这些列表条目的 Ingress 规则效果会被叠加。 此字段不是可选的,并且遵循标准标签选择算符语义。 + 空值的 podSelector 匹配此命名空间中的所有 Pod。 + + +- **policyTypes** ([]string) + + NetworkPolicy 相关的规则类型列表。 有效选项为 `[“Ingress”]`,`[“Egress”]` 或 `[“Ingress”, “Egress”]`。 + 如果不指定此字段,则默认值取决是否存在 Ingress 或 Egress 规则;规则里包含 Egress 部分的策略将会影响出站流量, + 并且所有策略(无论它们是否包含 Ingress 部分)都将会影响 入站流量。 + 如果要仅定义出站流量策略,则必须明确指定 `[ "Egress" ]`。 + 同样,如果要定义一个指定拒绝所有出站流量的策略,则必须指定一个包含 “Egress” 的 policyTypes 值 + (因为这样不包含 Egress 部分的策略,将会被默认为只有 [ "Ingress" ] )。 此字段在 1.8 中为 Beta。 + + +- **ingress** ([]NetworkPolicyIngressRule) + + 定义所选 Pod 的入站规则列表。在没有被任何 NetworkPolicy 选择到 Pod 的情况下(同时假定集群策略允许对应流量), + 或者如果流量源是 Pod 的本地节点,或者流量与所有 NetworkPolicy 中的至少一个入站规则(Ingress) 匹配, + 则进入 Pod 的流量是被允许的。如果此字段为空,则此 NetworkPolicy 不允许任何入站流量 + (这种设置用来确保它所选择的 Pod 在默认情况下是被隔离的)。 + + + **NetworkPolicyIngressRule 定义 NetworkPolicySpec 的 podSelector 所选 Pod 的入站规则的白名单列表, + 流量必须同时匹配 ports 和 from 。** + + + + - **ingress.from** ([]NetworkPolicyPeer) + + 流量来源列表,列表中的来源可以访问被此规则选中的 Pod。此列表中的流量来源使用逻辑或操作进行组合。 + 如果此字段为空值或缺失(未设置), + 则此规则匹配所有流量来源(也即允许所有入站流量)。如果此字段存在并且至少包含一项来源,则仅当流量与来自列表中的至少一项匹配时, + 此规则才允许流量访问被选中的 Pod 集合。 + + + **NetworkPolicyPeer 描述了允许进出流量的对等点。 这个参数只允许某些字段组合** + + + + - **ingress.from.ipBlock** (IPBlock) + + IPBlock 针对特定的 IP CIDR 范围设置策略。如果设置了此字段,则不可以设置其他字段。 + + + IPBlock 定义一个特定的 CIDR 范围(例如 `192.168.1.1/24`、`2001:db9::/64`), + 来自这个 IP 范围的流量来源将会被允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 集合。 + except 字段则设置应排除在此规则之外的 CIDR 范围。 + + + + - **ingress.from.ipBlock.cidr** (string), 必需 + + CIDR 是指定 IP 组块的字符串, 例如 `"192.168.1.1/24"` 或 `"2001:db9::/64"`。 + + - **ingress.from.ipBlock.except** ([]string) + + except 是一个由 CIDR 范围组成的列表,其中指定的 CIDR 都应排除在此 IP 区块范围之外。 + 例如 `"192.168.1.1/24"` 或 `"2001:db9::/64"`。 + 如果 except 字段的值超出 ipBlock.cidr 的范围则被视为无效策略。 + + + + - **ingress.from.namespaceSelector** (}}">LabelSelector) + + 此选择器使用集群范围标签来选择特定的 Namespace。此字段遵循标准标签选择算符语义; + 如果此字段存在但为空值,则会选择所有名字空间。 + + 如果 podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 所选名字空间下 + 和 podSelector 规则匹配的 Pod。 + 反之选择 namespaceSelector 所选名字空间下所有的 Pod。 + + + + - **ingress.from.podSelector** (}}">LabelSelector) + + 这个标签选择算符负责选择 Pod。该字段遵循标准标签选择算符语义;如果字段存在但为空值,则选择所有 Pod。 + + 如果 namespaceSelector 也被定义,那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 定义的名字空间下 + 和 podSelector 规则匹配的 Pod。 + 反之会在策略所在的名字空间中选择与 podSelector 匹配的 Pod。 + + + + - **ingress.ports** ([]NetworkPolicyPort) + + 定义在此规则选中的 Pod 上应可访问的端口列表。此列表中的个项目使用逻辑或操作组合。如果此字段为空或缺失, + 则此规则匹配所有端口(进入流量可访问任何端口)。 + 如果此字段存在并且包含至少一个有效值,则此规则仅在流量至少匹配列表中的一个端口时才允许访问。 + + + **NetworkPolicyPort 定义可以连接的端口** + + + + - **ingress.ports.port** (IntOrString) + + 给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 + 如果定义了,则仅允许对给定的协议和端口的入口流量。 + + + IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 + 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。 + + + + - **ingress.ports.endPort** (int32) + + 如果设置了此字段,则表明策略应该允许 port 与 endPort 之间(包含二者)的所有端口。 + 如果未定义 port 或将 port 字段值为命名端口(字符串),则不可以使用 endPort 。 + endPort 必须等于或大于 port 值。此功能是 Beta 阶段,默认启用。可以使用 “NetworkPolicyEndPort” 特性门控来禁用 endPort 。 + + - **ingress.ports.protocol** (string) + + 流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。 + + + +- **egress** ([]NetworkPolicyEgressRule) + + egress 定义所选 Pod 的出站规则的列表。如果没有 NetworkPolicy 选中指定 Pod(并且其他集群策略也允许出口流量), + 或者在所有通过 podSelector 选中了某 Pod 的 NetworkPolicy 中,至少有一条出站规则与出站流量匹配, + 则该 Pod 的出站流量是被允许的。 + 如果此字段为空,则此 NetworkPolicy 拒绝所有出站流量(这策略可以确保它所选中的 Pod 在默认情况下是被隔离的)。 + egress 字段在 1.8 中为 Beta 级别。 + + + NetworkPolicyEgressRule 针对被 NetworkPolicySpec 的 podSelector 所选中 Pod,描述其被允许的出站流量。 + 流量必须同时匹配 ports 和 to 设置。此类型在 1.8 中为 Beta 级别。 + + + + - **egress.to** ([]NetworkPolicyPeer) + + 针对此规则所选择的 Pod 的出口流量的目的地列表。此列表中的目的地使用逻辑或操作进行组合。 如果此字段为空或缺失, + 则此规则匹配所有目的地(流量不受目的地限制)。 如果此字段存在且至少包含一项目的地,则仅当流量与目标列表中的至少一个匹配时, + 此规则才允许出口流量。 + + + **NetworkPolicyPeer 描述允许进出流量的对等点。这个对象只允许某些字段组合。** + + + + - **egress.to.ipBlock** (IPBlock) + + ipBlock 针对特定的 IP 区块定义策略。如果设置了此字段,则其他不可以设置其他字段。 + + + IPBlock 描述一个特定的 CIDR 范围(例如 `192.168.1.1/24`、`2001:db9::/64`), + 与 NetworkPolicySpec 的 podSelector 匹配的 Pod 将被允许连接到这个 IP 范围,作为其出口流量目的地。 + except 字段则设置了不被此规则影响的 CIDR 范围。 + + + + - **egress.to.ipBlock.cidr** (string), 必需 + + CIDR 是用来表达 IP 组块的字符串,例如 `"192.168.1.1/24"` 或 `"2001:db9::/64"`。 + + - **egress.to.ipBlock.except** ([]string) + + except 定义不应包含在 ipBlock 内的 CIDR 范围列表。例如 `"192.168.1.1/24"` 或 `"2001:db9::/64"`。 + 如果 except 的值超出 ipBlock.cidr 的范围则被拒绝。 + + + + - **egress.to.namespaceSelector** (}}">LabelSelector) + + 此选择算符使用集群范围标签来选择特定的名字空间。该字段遵循标准标签选择算符语义;如果字段存在但为空值,那会选择所有名字空间。 + + 如果 egress.to.podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 指定的名字空间下 + 和 podSelector 规则匹配的 Pod。 + 反之选择 namespaceSelector 指定的名字空间下所有的 Pod。 + + + + - **egress.to.podSelector** (}}">LabelSelector) + + 这个标签选择器负责选择一组 Pod。该字段遵循标准标签选择算符语义; 如果字段存在但为空值,则选择所有 Pod。 + + 如果 egress.to.namespaceSelector 也被定义,则 NetworkPolicyPeer 将选择 namespaceSelector 所指定的名字空间下 + 和 podSelector 规则匹配的 Pod。 + 反之会在策略所属的名字空间中选择与 podSelector 匹配的 Pod。 + + + + - **egress.ports** ([]NetworkPolicyPort) + + 出站流量目的地的端口列表。此列表中的各个项目使用逻辑或操作进行组合。如果此字段为空或缺失, + 则此规则匹配所有端口(可访问出口流量目的地的任何端口)。 如果此字段存在并且包含至少一个有效值, + 则此规则仅在流量与列表中的至少一个端口匹配时才允许访问。 + + + **NetworkPolicyPort 定义出口流量目的地的端口** + + + + - **egress.ports.port** (IntOrString) + + 给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 + 如果定义此字段,则仅允许针对给定的协议和端口的出站流量。 + + + IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 + 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。 + + - **egress.ports.endPort** (int32) + + 如果设置了 endPort,则用来指定策略所允许的从 port 到 endPort 的端口范围(包含边界值)。 + 如果未设置 port 或 port 字段值为端口名称(字符串),则不可以指定 endPort。 + endPort 必须等于或大于 port 值。此功能是 Beta 阶段,默认被启用。可以使用 “NetworkPolicyEndPort” 特性门控来禁用 endPort 。 + + - **egress.ports.protocol** (string) + + 流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。 + +## NetworkPolicyStatus {#NetworkPolicyStatus} + + + +NetworkPolicyStatus 描述有关此 NetworkPolicy 的当前状态。 + +
+ + + +- **conditions** ([]Condition) + + **补丁策略:根据 `type` 键执行合并操作** + + **Map:键 type 的唯一值将在合并期间被保留** + + conditions 包含描述此 NetworkPolicy 状态的 metav1.Condition 数组,即当前服务状态。 + + + **Condition 包含此 API 资源当前状态的一个方面的详细信息。** + + + + - **conditions.lastTransitionTime** (Time), 必需 + + lastTransitionTime 是状况最近一次从一种状态转换到另一种状态的时间。 + 这种变化通常出现在下层状况发生变化的时候。如果无法了解下层状况变化,使用 API 字段更改的时间也是可以接受的。 + + + Time 是 time.Time 的包装器,它支持对 YAML 和 JSON 的正确编组。 + time 包的许多工厂方法提供了包装器。 + + + + - **conditions.message** (string), 必需 + + message 是一条人类可读的消息,指示有关转换的详细信息。它可能是一个空字符串。 + + + + - **conditions.reason** (string), 必需 + + reason 包含一个程序标识符,指示状况最后一次转换的原因。 + 特定状况类型的生产者可以定义该字段的预期值和含义,以及这些值是否可被视为有保证的 API。 + 该值应该是 CamelCase 字符串。此字段不能为空。 + + + + - **conditions.status** (string), 必需 + + 状况的状态为 True、False、Unknown 之一。 + + + + - **conditions.type** (string), 必需 + + CamelCase 或 foo.example.com/CamelCase 形式的状况类型。 + + + + - **conditions.observedGeneration** (int64) + + observedGeneration 表示设置状况时所基于的 `.metadata.generation`。 + 例如,如果 `.metadata.generation` 当前为 12,但 `.status.conditions[x].observedGeneration` 为 9, + 则状况相对于实例的当前状态已过期。 + + +## NetworkPolicyList {#NetworkPolicyList} + + + +NetworkPolicyList 是 NetworkPolicy 的集合。 + +
+ +- **apiVersion**: networking.k8s.io/v1 + + +- **kind**: NetworkPolicyList + + + + +- **metadata** (}}">ListMeta) + + 标准的对象元数据。 + 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata。 + + + +- **items** ([]}}">NetworkPolicy), 必需 + + items 是 NetworkPolicy 的列表。 + + +## 操作 {#Operations} + +
+ + + +### `get` 读取指定的 NetworkPolicy + +#### HTTP 请求 + +GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +401: Unauthorized + + + +### `get` 读取指定的 NetworkPolicy 的状态 + +GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +401: Unauthorized + + + +### `list` 列出或监视 NetworkPolicy 类型的对象 + +#### HTTP 请求 + +GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies + + +#### 参数 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + + +- **continue** (**查询参数**): string + + }}">continue + + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + + +- **limit** (**查询参数**): integer + + }}">limit + + +- **pretty** (**查询参数**): string + + }}">pretty + + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">NetworkPolicyList): OK + +401: Unauthorized + + + +### `list` 列出或监视 NetworkPolicy 类 + +#### HTTP Request + +GET /apis/networking.k8s.io/v1/networkpolicies + + +#### 参数 + + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + + +- **continue** (**查询参数**): string + + }}">continue + + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + + +- **limit** (**查询参数**): integer + + }}">limit + + + +- **pretty** (**查询参数**): string + + }}">pretty + + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + + + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">NetworkPolicyList): OK + +401: Unauthorized + + + +### `create` 创建 NetworkPolicy + +#### HTTP 请求 + +POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies + + +#### 参数 + + +- **namespace** (**路径参数**): string, 必需 + +- **body**: }}">NetworkPolicy, 必需 + + + +- **dryRun** (**查询参数**): string + + }}">dryRun + + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +201 (}}">NetworkPolicy): Created + +202 (}}">NetworkPolicy): Accepted + +401: Unauthorized + + + +### `update` 替换指定的 NetworkPolicy + +#### HTTP 请求 + +PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **body**: }}">NetworkPolicy, 必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +201 (}}">NetworkPolicy): Created + +401: Unauthorized + + +### `update` 替换指定的 NetworkPolicy 的状态 + +#### HTTP 请求 + +PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **body**: }}">NetworkPolicy, 必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +201 (}}">NetworkPolicy): Created + +401: Unauthorized + + +### `patch` 部分更新指定的 NetworkPolicy + +#### HTTP 请求 + +PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **body**: }}">Patch, 必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **force** (*in query*): boolean + + }}">force + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +201 (}}">NetworkPolicy): Created + +401: Unauthorized + + +### `patch` 部分更新指定的 NetworkPolicy 的状态 + +#### HTTP 请求 + +PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + NetworkPolicy 的名称。 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **body**: }}">Patch, 必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **force** (*in query*): boolean + + }}">force + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">NetworkPolicy): OK + +201 (}}">NetworkPolicy): Created + +401: Unauthorized + + +### `delete` 删除 NetworkPolicy + +#### HTTP 请求 + +DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} + + +#### 参数 + + +- **name** (**路径参数**): string, 必需 + + name of the NetworkPolicy + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + + +- **body**: }}">DeleteOptions + +- **dryRun** (**查询参数**): string + + }}">dryRun + + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + + +#### 响应 + +200 (}}">Status): OK + +202 (}}">Status): Accepted + +401: Unauthorized + + +### `deletecollection` 删除 NetworkPolicy 的集合 + +#### HTTP 请求 + +DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies + + +#### 参数 + + +- **namespace** (**路径参数**): string, 必需 + + }}">namespace + +- **body**: }}">DeleteOptions + +- **continue** (**查询参数**): string + + }}">continue + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +#### 响应 + +200 (}}">Status): OK + +401: Unauthorized +