本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
端点配置
-
的
controlPlaneUrl参数createAbstractDefaultCallbacksProvider。 -
端点配置 CMake 参数:(
-DAWS_KVS_USE_LEGACY_ENDPOINT_ONLY=TRUE,-DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE) -
环境变量:(
export AWS_USE_DUALSTACK_ENDPOINT=TRUE)-
如果
AWS_USE_DUALSTACK_ENDPOINT是TRUE(不区分大小写),则将使用双栈端点。
-
-
否则,将构造和使用传统端点。
对于 2、3 和 4,将根据提供给的区域来构造端点createAbstractDefaultCallbacksProvider。
DNS 过滤
KVS Producer SDK 将根据配置设置相应的CURLOPT_IPRESOLVE参数:
-
DNS 解析 CMake 参数:(
-DAWS_KVS_IPV4_ONLY=TRUE、-DAWS_KVS_IPV6_ONLY=TRUE、-DAWS_KVS_IPV4_AND_IPV6_ONLY=TRUE) -
环境变量 (
export AWS_KVS_USE_IPV4=TRUE,export AWS_KVS_USE_IPV6=TRUE) -
否则,将不会进行过滤。如果由 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 检索相应的双堆栈数据平面端点。该服务根据请求网址返回相应的端点。
示例:
-
如果向以结尾的旧版终端节点发出
GetDataEndpointAPI 请求.amazonaws.com,Kinesis Video Streams 将返回以结尾.amazonaws.com的传统数据平面端点。 -
如果向结尾为的双栈终端节点发出
GetDataEndpointAPI 请求.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 地址范围。
重要
在IpAddress或NotIpAddress条件中使用 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):检查应用程序日志中的系统属性