IPv6 与 Kinesis Video Streams 配合使用 - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

IPv6 与 Kinesis Video Streams 配合使用

您可以将 Kinesis Video Streams 配置为 IPv6 用于控制平面和数据平面操作。这使您的应用程序能够 IPv6 使用通过双栈端点的地址与 Kinesis Video Streams 服务进行通信。

注意

IPv6 支持需要特定的 SDK 版本和配置设置。确保你的 Kinesis Video Streams SDK Amazon 和 SDK 版本 IPv6 支持双栈端点。双栈终端节点同时支持 IPv4 和 IPv6 流量,并且适用于某些地区的某些服务。

Kinesis Video Streams 通过双栈端点 IPv6 支持生产者和消费者应用程序。您可以将应用程序配置 IPv6 为用于控制平面 API 调用和数据平面流式传输操作。

将 Amazon SDK 配置为 IPv6

如果你在制作设置中使用 Amazon 软件开发工具包调用 Kinesis Video Streams 控制 APIs 平面,则可以通过配置双栈端点来 IPv6 启用。S Amazon DK 提供了几种标准化方法来启用双堆栈端点。

重要

启用双堆栈终端节点后,SDK 会尝试使用双堆栈终端节点发出网络请求。如果服务或区域不存在双堆栈终端节点,则请求将失败。

使用环境变量

设置以下环境变量以启用 IPv6 双栈端点:

export AWS_USE_DUALSTACK_ENDPOINT=true

使用 Amazon 配置文件

将以下设置添加到您的 Amazon 配置文件 (~/.aws/config):

[default] use_dualstack_endpoint = true

使用 JVM 系统属性(仅限 Java 和 Kotlin SDKs )

对于 Java 和 Kotlin 应用程序,请设置以下 JVM 系统属性:

-Daws.useDualstackEndpoint=true

或者在你的 Java 代码中以编程方式:

System.setProperty("aws.useDualstackEndpoint", "true");

SDK 支持

以下 Amazon SDKs 支持双栈端点配置:

SDK 支持 配置方法
Amazon CLI v2 环境变量,配置文件
适用于 C++ 的 SDK 环境变量,配置文件
适用于 Go V2 (1.x) 的 SDK 环境变量,配置文件
适用于 Java 2.x 的 SDK 环境变量、配置文件、JVM 属性
适用于 Java 1.x 的 SDK 不支持
适用于 JavaScript 3.x 的软件开发工具包 环境变量,配置文件
适用于 Python (Boto3) 的 SDK 环境变量,配置文件

配置双栈终端节点后, Amazon SDK 在调用 Kinesis Video Streams 控制平面时会自动使用 IPv6 终端节点。 APIs

将 Kinesis Video Streams Producer SDK 配置为 IPv6

Kinesis Video Streams Producer SDK 为控制平面和数据平面操作 IPv6 提供了配置选项。这些设置 Amazon 适用于 SDK 双栈端点配置。

配置 C/C++ 制作器开发工具包

默认端点和 DNS 解析链由 KVS Producer-C SDK 版本 1.6.0 实现。它会按顺序检查每个可以为这些参数设置配置的地方,然后选择你设置的第一个位置。预定义的顺序如下所示:

有关制作器的更多信息 SDKs,请参阅适用于 C 的制作人 SDK、适用于 C ++ 的制作人 SDK制作人 SDK 相关主题

端点配置

  1. controlPlaneUrl参数createAbstractDefaultCallbacksProvider

  2. 端点配置 CMake 参数:(-DAWS_KVS_USE_LEGACY_ENDPOINT_ONLY=TRUE,-DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE)

  3. 环境变量:(export AWS_USE_DUALSTACK_ENDPOINT=TRUE)

    • 如果AWS_USE_DUALSTACK_ENDPOINTTRUE(不区分大小写),则将使用双栈端点。

  4. 否则,将构造和使用传统端点。

对于 2、3 和 4,将根据提供给的区域来构造端点createAbstractDefaultCallbacksProvider

DNS 过滤

KVS Producer SDK 将根据配置设置相应的CURLOPT_IPRESOLVE参数:

  1. DNS 解析 CMake 参数:(-DAWS_KVS_IPV4_ONLY=TRUE-DAWS_KVS_IPV6_ONLY=TRUE-DAWS_KVS_IPV4_AND_IPV6_ONLY=TRUE)

  2. 环境变量 (export AWS_KVS_USE_IPV4=TRUE,export AWS_KVS_USE_IPV6=TRUE)

  3. 否则,将不会进行过滤。如果由 DNS 返回,则可以同时 IPv4 使用 IPv6 IP 地址。

注意

如果 DNS 筛选器设置设置为筛选 IPV6 IP 地址,但 SDK 配置为使用传统终端节点( IPV4仅返回地址),则请求将失败。

C++ Producer SDK 版本 3.5.0 使用 Producer-C SDK 1.6.0 进行 KVS API 调用。

配置 GStreamer 插件

该 GStreamer 插件使用底层 C Producer SDK,因此 IPv6 在按照前面所述配置 C SDK 时 IPv6 ,会自动处理配置。

无需修改代码,只需使用 CMake 参数构建 SDK 或按照上一节所述设置相应的环境变量即可。

数据平面端点分辨率

对于数据平面操作,请使用 GetDataEndpoint API 检索相应的双堆栈数据平面端点。该服务根据请求网址返回相应的端点。

示例:

  • 如果向以结尾的旧版终端节点发出 GetDataEndpoint API 请求.amazonaws.com,Kinesis Video Streams 将返回以结尾.amazonaws.com的传统数据平面端点。

  • 如果向结尾为的双栈终端节点发出 GetDataEndpoint API 请求.api.aws,Kinesis Video Streams 将返回结尾为的双栈数据平面终端节点。.api.aws

配置 Amazon CLI 为 IPv6

如果您使用用 Amazon CLI 于 Kinesis Video Streams 操作(通常 proof-of-concept用于工作),则可以通过配置双栈端点来 IPv6 启用。

使用环境变量

export AWS_USE_DUALSTACK_ENDPOINT=true

使用 Amazon 配置文件

将以下内容添加到您的 Amazon CLI 配置文件 (~/.aws/config):

[default] use_dualstack_endpoint = true

配置示例

C 软件开发工具包示例

要在 IPV6仅限模式下构建 KVS Producer-C SDK 并忽略环境变量配置,请使用以下命令构建 SDK:

cmake .. -DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE -DAWS_KVS_IPV6_ONLY=TRUE make -j
注意

如果您已经构建了 SDK,则需要执行干净的构建。在运行构建命令之前,请删除现有的构建、开源和依赖文件夹。

注意事项

网络要求

  • 确保您的网络基础设施支持 IPv6 连接

  • 验证您的安全组和网络是否 ACLs 允许 IPv6 流量

  • 测试部署环境中与 Amazon IPv6 终端节点的连接

  • 某些地区的某些服务可以使用双栈终端节点,请验证目标区域的可用性

SDK 兼容性

  • 确保您使用的是受支持的 Amazon SDK 版本

  • Amazon 适用于 Java 的 SDK 1.x 不支持双栈端点配置

  • 对于 SDK for Go 1.x (V1),必须启用从配置文件加载才能使用共享配置文件设置

测试和验证

在将 IPv6启用了 Kinesis Video Streams 应用程序部署到生产环境之前,请执行以下操作:

  • 测试控制平面操作(直播创建、删除、上线)

  • 验证数据平面操作(视频摄取和消费)

  • 验证您的网络环境中的性能和连通性

  • 运行 canary 测试以确保 IPv6 功能一致

  • 在双栈端点不可用时测试故障转移行为

受升级影响的客户包括 IPv6

启 IPv6 用 Kinesis Video Streams 后,可能需要在多个区域更新现有配置和策略,以确保持续运行。

IAM 策略和 IP 地址筛选

如果您在 IAM 用户策略、角色策略或基于资源的策略中使用源 IP 地址筛选,则需要更新这些策略以包含 IPv6 地址范围。

重要

IpAddressNotIpAddress条件中使用 IPv4 CIDR 块的现有 IAM 策略不会自动适用于 IPv6 地址。您必须明确添加 IPv6 范围以维护访问控制。

以下内容的 IAM 政策更新示例 IPv6:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "kinesisvideo:*", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24", "2001:db8::/32" ] } } } ] }

日志记录和监控

IPv6 地址的格式与 IPv4 地址不同,这可能会影响您的日志、监控和分析系统。

logs

当发出请求时,日志将包含sourceIPAddress字段中的 IPv6 地址 IPv6。更新您的日志解析工具和脚本以处理 IPv6 地址格式。

日志中的 IPv6 地址示例:

{ "sourceIPAddress": "2001:db8::1", "eventName": "CreateStream", "eventSource": "kinesisvideo.amazonaws.com" }

问题排查

常见问题

  • 连接失败-验证 IPv6 网络连接和 DNS 解析

  • SDK 错误 — 确保您使用的是支持双栈端点的兼容 SDK 版本

  • 身份验证问题 — 确认 IAM 策略和证书适用于 IPv6 终端节点

  • 终端节点不可用-如果服务或区域不存在双栈终端节点,则请求将失败

验证步骤

  • 检查您的配置文件中use_dualstack_endpoint = true是否已设置或已设置 AWS_USE_DUALSTACK_ENDPOINT=true

  • 验证 Kinesis Video Streams IPv6 SDK 配置标志是否设置正确

  • 测试与 Amazon IPv6 端点的网络连接

  • 查看应用程序日志,了解 IPv6特定于具体的错误消息

  • 确认您所在的地区支持 Kinesis Video Streams 的双栈终端节点

配置验证

您可以通过检查以下内容来验证您的双栈终端节点配置:

  • 环境变量:echo $AWS_USE_DUALSTACK_ENDPOINT

  • Amazon 配置文件:cat ~/.aws/config | grep use_dualstack_endpoint

  • JVM 属性 (Java):检查应用程序日志中的系统属性