View a markdown version of this page

與串流 URLs 共用串流工作階段 - Amazon GameLift Streams

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

與串流 URLs 共用串流工作階段

串流 URLs 可讓您快速與任何人共用串流工作階段。收件人在支援的 Web 瀏覽器中存取串流工作階段,不需要 AWS 帳戶 或 用戶端整合,而且您可以控制過期、用量和撤銷。建立串流 URL 之後,任何存取此 URL 的人都會啟動自己的串流工作階段,而不需要任何登入資料。串流 URLs非常適合快速輕鬆地設定示範、播放測試、利益相關者檢閱和訪客存取。

重要

擁有完整 URL 的任何人都可以啟動串流工作階段,直到串流 URL 過期、達到其用量限制或遭到撤銷為止。將串流 URL 視為登入資料:僅透過信任的管道共用、偏好最短的可用過期和用量限制,並在發生洩漏時立即撤銷。

串流 URLs的運作方式

串流 URL 會將串流群組 (執行串流的容量) 與該串流群組中的一個應用程式 (要執行的內容) 連結在一起。當您建立串流 URL 時,Amazon GameLift Streams 會傳回下列格式的串流 URL:

https://gameliftstreams.aws.com/su-1AB2C3De4/stream?token=EXAMPLETOKEN

工作流程有四個步驟:

  • 建立。您可以呼叫 CreateStreamUrl 以取得串流群組和應用程式,設定串流 URL 保持有效 (UrlExpiresAfterMinutes) 的時間,以及可以使用多少次 ()UsageLimit。串流工作階段組態 – 啟動引數、環境變數、工作階段長度、顯示解析度等 – 會在建立時凍結至串流 URL。

  • 共用。您可以透過自己的管道分發串流 URL,例如電子郵件、聊天或事件頁面。

  • 啟用。每次使用者開啟串流 URL 並開始串流時,Amazon GameLift Streams 都會使用串流 URL 的一次使用,並使用凍結組態啟動全新的串流工作階段。每次啟用都是獨立的工作階段;使用相同串流 URL 的人員之間沒有共用狀態。

  • 結束。從串流 URL 啟動的工作階段是短期的,不支援重新連線。當工作階段結束時,已計算其使用量;重新開啟串流 URL 會啟動新的工作階段並取用另一個使用量。

由於串流 URL 未經驗證,最終使用者永遠不會看到或需要您的 AWS 登入資料。服務會根據您在建立時設定的串流位置偏好設定,將每位最終使用者路由到附近的位置。Amazon GameLift Streams 會依鄰近程度重新排序您偏好的串流位置,但絕不會新增您未包含的位置。

最終使用者體驗

與 共用串流 URL 的使用者不需要安裝 AWS 帳戶 或任何軟體。他們會在支援的 Web 瀏覽器中開啟 URL,並從 Amazon GameLift Streams 為您託管的網頁串流。串流使用 WebRTC,並且具有與 Amazon GameLift Streams Web SDK 用戶端相同的瀏覽器和裝置需求。如需支援的瀏覽器和最低版本,請參閱 Amazon GameLift Streams 相容裝置和瀏覽器。如果串流群組在最終使用者開啟 URL 時沒有可用的容量,頁面會顯示串流暫時處於容量的訊息,而最終使用者可以重試。如果最終使用者嘗試關閉或重新載入標籤,頁面會提示他們確認,因為離開頁面會結束工作階段。

注意

從串流 URL 開始的工作階段會針對簡短的單一檢視者播放進行調校。如果最終使用者失去連線或重新載入頁面,工作階段會結束,然後重新開啟串流 URL 會啟動耗用其他用途的新工作階段。請參閱 與從 StartStreamSession 開始的工作階段的差異

先決條件

建立串流 URL 之前,您需要下列項目:

  • 作用中且具有執行工作階段容量的串流群組。

  • 連結至該串流群組的應用程式。

  • 串流 URL 動作的 IAM 許可。建立串流 URL 也需要其指向之應用程式的gameliftstreams:StartStreamSession許可,因為啟用串流 URL 會啟動執行該應用程式的串流工作階段。請參閱建立和管理串流 URLs政策範例。

  • 如果您在 中傳遞 IAM 角色RoleArn,您也需要該角色的iam:PassRole許可。

建立串流 URL

注意

您可以在 Amazon GameLift Streams 主控台、 AWS CLI或 API 中建立串流 URL。下列範例使用 AWS CLI。

下列 AWS CLI 範例會為串流群組中的應用程式建立串流 URL。串流 URL 的有效期為兩小時,最多可使用五次,且偏好 us-west-2us-east-1位置。

aws gameliftstreams create-stream-url \ --identifier sg-1AB2C3De4 \ --application-identifier a-9ZY8X7Wv6 \ --protocol WebRTC \ --url-expires-after-minutes 120 \ --usage-limit 5 \ --locations us-west-2 us-east-1 \ --description "Preview build - reviewer invites"

成功呼叫會傳回串流 URL 資源,包括其 StreamUrlId(字首 su-)、其 ARN、完整可共用的 StreamUrl、計算的過期時間和初始剩餘使用量。

{ "StreamUrlId": "su-1AB2C3De4", "Arn": "arn:aws:gameliftstreams:us-west-2:111122223333:streamurl/sg-1AB2C3De4/su-1AB2C3De4", "StreamUrl": "https://gameliftstreams.aws.com/su-1AB2C3De4/stream?token=EXAMPLETOKEN", "Status": "ACTIVE", "UsageLimit": 5, "RemainingUses": 5, "ExpiresAt": "2026-07-31T20:00:00+00:00" }

下列是必要參數:

參數 說明
Identifier (串流群組) 容量執行工作階段的串流群組。提供串流群組 ID 或 ARN。
ApplicationIdentifier 該串流群組中要串流的應用程式。提供應用程式 ID 或 ARN。
Protocol 串流通訊協定。 WebRTC 是唯一支援的值。
UrlExpiresAfterMinutes 串流 URL 從建立起的有效期限,以分鐘為單位。下限為 1;上限為 1,440 (24 小時)。在此視窗之後,串流 URL 會變成 EXPIRED
Locations 您偏好的位置,例如 等 AWS 區域 代碼us-west-2,依優先順序排列。Amazon GameLift Streams 會依最終使用者鄰近性重新排序這些項目,但絕不會新增您未列出的位置。

下列是選用參數。您提供的任何工作階段設定都會在建立時凍結至串流 URL,並套用至從串流 URL 啟動的每個工作階段。

參數 說明
UsageLimit 串流 URL 可以啟動工作階段的次數。預設 1;最多 50 個。
Description 串流 URL 的標籤,1-80 個字元。
SessionLengthSeconds 從串流 URL 啟動的每個工作階段的長度上限。
AdditionalLaunchArgs 啟動時傳遞給應用程式的命令列引數。
AdditionalEnvironmentVariables 啟動時為應用程式設定的環境變數。
DisplayConfiguration (Resolution) 串流顯示解析度,以Resolution必要的 Width 和像素Height表示。每個維度必須介於 320 到 4096 之間。省略時,服務會使用預設解析度。
RoleArn IAM 角色,其登入資料可供應用程式在每個工作階段期間使用。角色會凍結到串流 URL 開始的每個工作階段中。傳遞角色需要其iam:PassRole許可。
ClientToken 唯一且區分大小寫的識別符,可讓建立請求具有等冪性,因此具有相同字符的重試不會建立重複的串流 URL。

監控您的串流 URLs

使用 GetStreamUrl 擷取單一串流 URL。使用 指定串流群組,--identifier並使用 指定串流 URL --stream-url-identifier(串流 URL ID 或 ARN)。除了串流 URL 的組態、目前 StatusRemainingUses之外,回應還包含從中啟動的工作階段StreamSessions清單,讓您可以查看誰正在主動串流。

aws gameliftstreams get-stream-url \ --identifier sg-1AB2C3De4 \ --stream-url-identifier su-1AB2C3De4

使用 ListStreamUrls 列舉您帳戶中URLs。您可以依串流群組Status和 進行篩選,並使用 MaxResults(1–100,預設 25) 和 分頁結果NextToken

aws gameliftstreams list-stream-urls \ --status ACTIVE \ --stream-group-identifier sg-1AB2C3De4

您也可以在 CloudTrail 中稽核串流 URL 管理活動。CloudTrail 會將對 CreateStreamUrlListStreamUrlsGetStreamUrl和 的呼叫記錄RevokeStreamUrl為資料事件。開啟串流 URL 並啟動工作階段的最終使用者不是您的 API 呼叫之一,也不會記錄為客戶 CloudTrail 活動。如需詳細資訊,請參閱使用 記錄 Amazon GameLift Streams API 呼叫 AWS CloudTrail

撤銷串流 URL

當您想要停止串流 URL 以啟動任何其他工作階段時,例如預覽期間結束或可能無意間共用。

RevokeStreamUrl 接受 RevocationMode

RevocationMode Effect
REVOKE_URL (default) 串流 URL 無法再啟動新的工作階段。正在進行的工作階段會持續進行,直到它們自行結束為止。
REVOKE_AND_TERMINATE_SESSIONS 串流 URL 無法再啟動新的工作階段,而且目前從中執行的所有工作階段都會終止。以這種方式終止執行中的工作階段時,最終使用者會中斷連線,並看到串流不再可用的訊息。
aws gameliftstreams revoke-stream-url \ --identifier sg-1AB2C3De4 \ --stream-url-identifier su-1AB2C3De4 \ --revocation-mode REVOKE_AND_TERMINATE_SESSIONS

撤銷的串流 URL 會轉換為 REVOKED 狀態,且無法重新啟用。如果您需要繼續共用,請建立新的串流 URL。

刪除相依的資源時,Amazon GameLift Streams 也會自動撤銷串流 URL。刪除串流群組會撤銷該串流群組上的所有串流 URLs,而刪除應用程式會撤銷參考該應用程式的所有串流 URLs。在這兩種情況下,串流 URL 會移至 ,REVOKED並具有識別已刪除資源的狀態原因。

注意

移除串流 URL 所依賴的資源與刪除資源不同,而且不會自動撤銷串流 URL。串流 URL 會保留 ACTIVE,但每次嘗試從中啟動工作階段都會失敗。如果您將串流 URL 的應用程式從串流群組取消連結,或是移除建立串流 URL 的所有串流群組位置,就會發生這種情況。僅刪除串流群組或應用程式會觸發自動撤銷。

串流 URL 生命週期和狀態

串流 URL 會在建立ACTIVE時以這種方式保留,直到過期、用盡或遭到撤銷為止。離開該狀態ACTIVE後,它永遠不會返回 。

狀態 意義
ACTIVE 串流 URL 可以啟動新的工作階段。
EXPIRED UrlExpiresAfterMinutes 視窗已過。
REVOKED 串流 URL 已遭撤銷,可能是使用 明確撤銷,RevokeStreamUrl或在刪除其串流群組或應用程式時自動撤銷。
LIMIT_REACHED 串流 URL 已使用其所有 UsageLimit

當串流 URL 為 GetStreamUrlREVOKEDListStreamUrls 也會傳回說明原因的狀態原因。

狀態原因 原因
userRevoked RevokeStreamUrl 使用 以 撤銷REVOKE_URL
revokedAndTerminatingSessions 使用 撤銷REVOKE_AND_TERMINATE_SESSIONS;正在終止執行的工作階段。
revokedAndSessionsTerminated 使用 撤銷REVOKE_AND_TERMINATE_SESSIONS;執行中的工作階段已終止。
streamGroupDeleted 串流群組已刪除。
applicationDeleted 已刪除參考的應用程式。

與從 StartStreamSession 開始的工作階段的差異

從串流 URL 開始的工作階段會與您開始的工作階段在相同的基礎設施上執行,但會針對簡短的切換、單一檢視器播放進行調校。請謹記這些差異:

  • 不重新連線。如果最終使用者失去連線或重新載入頁面,工作階段會結束。

  • 重新瀏覽 會使用其他用途。由於沒有重新連線,再次開啟串流 URL 會啟動全新的工作階段,並從其 取用另一個用途UsageLimit

  • 沒有資料通道。從串流 URL 啟動的串流不會公開應用程式資料通道。如果需要,請使用 Amazon GameLift Streams Web SDK 建置自己的用戶端。

疑難排解

Amazon GameLift Streams 刻意從最終使用者隱藏串流 URL 啟用失敗的特定原因。開啟無法啟動串流的串流 URL 的最終使用者一律會看到一般「找不到」頁面或「容量」訊息,無論根本原因為何。若要診斷實際原因,請使用 GetStreamUrl和 從建立者端檢查串流 URLListStreamUrls、檢查 Status和 狀態原因,並在 CloudTrail 中檢閱串流 URL API 活動。

  • 串流 URL 會顯示「找不到」或一般錯誤頁面。Status 使用 檢查 GetStreamUrlEXPIREDREVOKEDLIMIT_REACHED 會說明不可啟動的串流 URL。如果狀態為 ACTIVE,但啟用仍然失敗,則串流 URL 所依賴的資源很可能已移除 (未刪除):應用程式已從串流群組取消連結,或使用 建立串流 URL 的所有串流群組位置都已移除。重新連結應用程式或還原位置,或針對有效的資源建立新的串流 URL。

  • 最終使用者會看到「容量不足」訊息。串流群組沒有可用的容量,可將新的工作階段放置在最終使用者最近的位置。每次啟用都會啟動新的工作階段,並使用 之類的容量StartStreamSession。增加最小 (一律開啟) 或最大容量,或使用目標閒置 (預先暖機) 容量,讓容量在需求之前保持就緒狀態,特別是針對有時間限制的事件。

  • 工作階段會在最終使用者重新整理或離開時結束。這是預期的行為。URL 啟用的工作階段不會重新連線,而且每次造訪都會啟動使用的新工作階段。建議最終使用者不要重新整理,並設定UsageLimit高到足以容忍偶爾重新載入。

  • 最終使用者在工作階段中中斷連線,並看到「不再提供此體驗」。每當工作階段結束於伺服器端時,最終使用者都會看到此一般訊息。串流 URL 最常見的原因是使用 將其撤銷REVOKE_AND_TERMINATE_SESSIONS,這會立即結束執行中的工作階段,但如果工作階段達到其設定的長度限制或由服務終止,則會顯示相同的訊息。這是預期的行為。建立新的串流 URL 以繼續共用。

  • 串流不會載入或無法為最終使用者啟動。最終使用者的瀏覽器可能不符合串流需求。串流需要支援 WebRTC 和 H.264 (AVC) 的瀏覽器;如需支援的瀏覽器和最低版本Amazon GameLift Streams 相容裝置和瀏覽器,請參閱 。常見的原因是在應用程式內瀏覽器檢視中開啟串流 URL,例如在行動裝置上的聊天、電子郵件或社交應用程式中點選的連結,這會停用 WebRTC。建議收件人在 Chrome、Edge 或 Safari 等獨立瀏覽器中開啟串流 URL。

  • CreateStreamUrl 傳回 ServiceQuotaExceededException請求將超過作用中計數限制 (每個帳戶 20 個作用中串流 URLs 或每個串流群組 5 個)。撤銷不再需要釋放空間URLs,並使用依 Status 設定為 ListStreamUrls篩選的 ACTIVE 來查看目前的計數。

  • CreateStreamUrl 傳回 ValidationException輸入值超出範圍。UsageLimit 設定為 1 到 50,UrlExpiresAfterMinutes設定為 1 到 1,440。