View a markdown version of this page

搭配 Kinesis Video Streams 使用 IPv6 - Amazon Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 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 CProducer SDK for C++Producer 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=TRUEexport AWS_KVS_USE_IPV6=TRUE)

  3. 否則,將不會進行篩選。如果 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 傳回對應的端點。

範例:

  • 如果對結尾為 的舊版端點提出 GetDataEndpoint API 請求.amazonaws.com,Kinesis Video Streams 會傳回結尾為 的舊版資料平面端點.amazonaws.com

  • 如果對以 結尾的雙堆疊端點提出 GetDataEndpoint API 請求.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 地址範圍。

重要

IpAddressNotIpAddress條件中使用 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):檢查應用程式日誌中的系統屬性