本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Kinesis Video Streams 使用 IPv6
您可以設定 Kinesis Video Streams,以將 IPv6 用於控制平面和資料平面操作。這可讓您的應用程式透過雙堆疊端點,使用 IPv6 地址與 Kinesis Video Streams 服務通訊。
注意
IPv6 支援需要特定的 SDK 版本和組態設定。確保您的 Kinesis Video Streams SDK 和 AWS SDK 版本支援 IPv6 雙堆疊端點。雙堆疊端點同時支援 IPv4 和 IPv6 流量,適用於某些區域中的某些 服務。
Kinesis Video Streams 透過生產者和消費者應用程式的雙堆疊端點支援 IPv6。您可以設定應用程式使用 IPv6 控制平面 API 呼叫和資料平面串流操作。
設定適用於 IPv6 的 AWS SDK
如果您使用 AWS SDK 在生產設定中呼叫 Kinesis Video Streams 控制平面 APIs,您可以透過設定雙堆疊端點來啟用 IPv6。 AWS 開發套件提供多種標準化方法來啟用雙堆疊端點。
重要
啟用雙堆疊端點時,軟體開發套件會嘗試使用雙堆疊端點來提出網路請求。如果服務或區域不存在雙堆疊端點,則請求會失敗。
使用環境變數
設定下列環境變數以啟用 IPv6 雙堆疊端點:
export AWS_USE_DUALSTACK_ENDPOINT=true
使用 AWS 組態檔案
將下列設定新增至您的 AWS 組態檔案 (~/.aws/config):
[default] use_dualstack_endpoint = true
使用 JVM 系統屬性 (僅限 Java 和 Kotlin SDKs)
對於 Java 和 Kotlin 應用程式,設定下列 JVM 系統屬性:
-Daws.useDualstackEndpoint=true
或以程式設計方式在您的 Java 程式碼中:
System.setProperty("aws.useDualstackEndpoint", "true");
開發套件支援
下列 AWS SDKs支援雙堆疊端點組態:
| SDK | 支援 | 組態方法 |
|---|---|---|
| AWS CLI v2 | 是 | 環境變數、組態檔案 |
| 適用於 C++ 的 SDK | 是 | 環境變數、組態檔案 |
| 適用於 Go V2 的 SDK (1.x) | 是 | 環境變數、組態檔案 |
| 適用於 Java 2.x 的 SDK | 是 | 環境變數、組態檔案、JVM 屬性 |
| 適用於 Java 1.x 的 SDK | 否 | 不支援 |
| 適用於 JavaScript 3.x 的 SDK | 是 | 環境變數、組態檔案 |
| 適用於 Python 的 SDK (Boto3) | 是 | 環境變數、組態檔案 |
設定雙堆疊端點之後,軟體 AWS 開發套件會在呼叫 Kinesis Video Streams 控制平面 APIs 時自動使用 IPv6 端點。
設定適用於 IPv6 的 Kinesis Video Streams Producer SDK
Kinesis Video Streams Producer SDK 為控制平面和資料平面操作提供 IPv6 組態選項。這些設定適用於 AWS SDK 雙堆疊端點組態。
設定 C/C++ Producer SDK
預設端點和 DNS 解析鏈是由 KVS Producer-C SDK 1.6.0 版實作。它會依序檢查您可以設定這些參數組態的每個位置,然後選取您設定的第一個。預先定義的序列如下:
如需 Producer SDKs 的詳細資訊,請參閱 Producer SDK for 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-only 的地址),則請求將會失敗。
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 擷取適當的雙堆疊資料平面端點。服務會根據請求 URL 傳回對應的端點。
範例:
-
如果對結尾為 的舊版端點提出
GetDataEndpointAPI 請求.amazonaws.com,Kinesis Video Streams 會傳回結尾為 的舊版資料平面端點.amazonaws.com。 -
如果對以 結尾的雙堆疊端點提出
GetDataEndpointAPI 請求.api.aws,Kinesis Video Streams 會傳回以 結尾的雙堆疊資料平面端點.api.aws。
設定 IPv6 AWS CLI 的
如果您使用 AWS CLI 進行 Kinesis Video Streams 操作 (通常用於proof-of-concept工作),您可以透過設定雙堆疊端點來啟用 IPv6。
使用環境變數
export AWS_USE_DUALSTACK_ENDPOINT=true
使用 AWS 組態檔案
將下列項目新增至您的 AWS CLI 組態檔案 (~/.aws/config):
[default] use_dualstack_endpoint = true
組態範例
C SDK 範例
若要以IPV6-only Producer-C SDK,並忽略環境變數組態,請使用下列命令來建置 SDK:
cmake .. -DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE -DAWS_KVS_IPV6_ONLY=TRUE make -j
注意
如果您已建置 開發套件,則需要執行乾淨的建置。在執行建置命令之前,刪除現有的建置、開放原始碼和相依性資料夾。
考量事項
網路需求
-
確保您的網路基礎設施支援 IPv6 連線
-
確認您的安全群組和網路 ACLs IPv6 流量
-
從部署環境測試對 AWS IPv6 端點的連線
-
某些 區域中的某些服務可使用雙堆疊端點 - 驗證目標區域的可用性
開發套件相容性
-
確保您使用的是支援的 AWS SDK 版本
-
適用於 Java 的 AWS SDK 1.x 不支援雙堆疊端點組態
-
對於適用於 Go 1.x (V1) 的 SDK,您必須啟用從組態檔案載入,才能使用共用的組態檔案設定
測試和驗證
將IPv6-enabled Kinesis Video Streams 應用程式部署到生產環境之前:
-
測試控制平面操作 (串流建立、刪除、列出)
-
驗證資料平面操作 (影片擷取和取用)
-
驗證網路環境中的效能和連線
-
執行 Canary 測試以確保一致的 IPv6 功能
-
雙堆疊端點無法使用時的測試容錯移轉行為
受 IPv6 升級影響的客戶
當您為 Kinesis Video Streams 啟用 IPv6 時,有幾個區域可能需要更新現有的組態和政策,以確保持續功能。
IAM 政策和 IP 地址篩選
如果您在 IAM 使用者政策、角色政策或資源型政策中使用來源 IP 地址篩選,則需要更新這些政策以包含 IPv6 地址範圍。
重要
在 IpAddress或 NotIpAddress條件中使用 IPv4 CIDR 區塊的現有 IAM 政策不會自動使用 IPv6 地址。您必須明確新增 IPv6 範圍以維護存取控制。
IPv6 的 IAM 政策更新範例:
{ "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 地址不同,這可能會影響您的記錄、監控和分析系統。
日誌
當透過 IPv6 提出請求時, 日誌會在 sourceIPAddress 欄位中包含 IPv6 地址。更新您的日誌剖析工具和指令碼,以處理 IPv6 地址格式。
日誌中 IPv6 地址的範例:
{ "sourceIPAddress": "2001:db8::1", "eventName": "CreateStream", "eventSource": "kinesisvideo.amazonaws.com" }
疑難排解
常見問題
-
連線失敗 – 驗證 IPv6 網路連線和 DNS 解析
-
SDK 錯誤 – 確保您使用的是支援雙堆疊端點的相容 SDK 版本
-
身分驗證問題 – 確認 IAM 政策和登入資料可與 IPv6 端點搭配使用
-
端點無法使用 – 如果服務或區域不存在雙堆疊端點,則請求會失敗
驗證步驟
-
檢查
AWS_USE_DUALSTACK_ENDPOINT=true是否已在您的組態檔案中設定use_dualstack_endpoint = true或 -
確認 Kinesis Video Streams SDK IPv6 組態旗標已正確設定
-
測試 AWS IPv6 端點的網路連線能力
-
檢閱應用程式日誌是否有 IPv6-specific錯誤訊息
-
確認您的區域支援 Kinesis Video Streams 的雙堆疊端點
組態驗證
您可以檢查以下項目來驗證雙堆疊端點組態:
-
環境變數:
echo $AWS_USE_DUALSTACK_ENDPOINT -
AWS 組態檔案:
cat ~/.aws/config | grep use_dualstack_endpoint -
JVM 屬性 (Java):檢查應用程式日誌中的系統屬性