

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

# GetSessionConnectionData
<a name="GetSessionConnectionData"></a>

取得特定使用者連線到特定 Amazon DCV 工作階段的連線資訊。

**Topics**
+ [請求參數](#request)
+ [回應參數](#response)
+ [其他資訊](#additional-info)
+ [範例](#example)

## 請求參數
<a name="request"></a>

**`SessionId`**  
要檢視連線資訊的工作階段 ID。  
類型：字串  
必要：是

**`User`**  
要檢視連線資訊的使用者名稱。  
類型：字串  
必要：是

## 回應參數
<a name="response"></a>

**`Id`**  
工作階段的唯一 ID。

**`Name`**  
工作階段的名稱。

**`Owner`**  
工作階段的擁有者。

**`Server`**  
工作階段執行所在伺服器的相關資訊。此資料結構包含下列巢狀回應參數：    
**`Ip`**  
Amazon DCV 伺服器主機的 IP 地址。  
**`Hostname`**  
Amazon DCV 伺服器主機的主機名稱。  
**`Port`**  
Amazon DCV 伺服器與 Amazon DCV 用戶端通訊的連接埠。  
**`Endpoints`**  
Amazon DCV 伺服器端點的相關資訊。此資料結構包含下列巢狀回應參數：    
**`IpAddress`**  
伺服器端點的 IP 地址。  
**`Port`**  
伺服器端點的連接埠。  
**`Protocol`**  
伺服器端點所使用的通訊協定。可能的值包括：  
+ `HTTP` — 端點使用 WebSocket (TCP) 通訊協定。
+ `QUIC` — 端點使用 QUIC (UDP) 通訊協定。  
**`WebUrlPath`**  
伺服器端點的 Web URL 路徑。僅適用於 HTTP 通訊協定。  
**`WebUrlPath`**  
Amazon DCV 伺服器組態檔案的路徑。  
**`Tags`**  
指派給伺服器的標籤。此資料結構包含下列巢狀回應參數：    
**`Key`**  
標籤金鑰。  
**`Value`**  
標籤值。

**`Type`**  
工作階段的類型。

**`State`**  
工作階段的目前狀態。可能值為：  
+ `CREATING` - 中介裝置正在建立工作階段。
+ `READY` - 工作階段已準備好接受用戶端連線。
+ `DELETING` - 正在刪除工作階段。
+ `DELETED` - 已刪除工作階段。
+ `UNKNOWN` - 無法判斷工作階段的狀態。中介裝置和代理程式可能無法通訊。

**`CreationTime`**  
工作階段建立的日期和時間。

**`LastDisconnectionTime`**  
上次用戶端中斷連線的日期和時間。

**`NumOfConnections`**  
使用者與工作階段的並行連線數目。

**`ConnectionToken`**  
用於連線至工作階段的身分驗證字符。

## 其他資訊
<a name="additional-info"></a>

從此 API 取得的資訊可以傳遞至 Amazon DCV 用戶端，以連線至 Amazon DCV 工作階段。

如果是 Amazon DCV Web 用戶端，您可以建置可在瀏覽器中開啟的 URL。URL 的格式如下：

```
https://{Ip}:{Port}{WebUrlPath}?authToken={ConnectionToken}#{SessionId}.
```

如果是 Amazon DCV 原生用戶端，您可以使用`dcv://`結構描述建置 URL。安裝 Amazon DCV 原生用戶端時，它會向系統註冊本身，做為 `dcv://` URLs的處理常式。URL 的格式如下：

```
dcv://{Ip}:{Port}{WebUrlPath}?authToken={ConnectionToken}#{SessionId}.
```

**注意**  
 如果您使用的是 Amazon EC2，IP 地址應該是公有地址。如果您的組態在閘道後方有 Amazon DCV 主機，請指定閘道地址，而不是 SessionConnectionData API 傳回的地址。

## 範例
<a name="example"></a>

------
#### [ Python ]

**請求**  
下列範例會取得使用者名稱為 且`user1`工作階段 ID 為 之使用者的連線資訊`sessionId12345`。

```
def get_session_connection_api():
    api_instance = swagger_client.GetSessionConnectionDataApi(swagger_client.ApiClient(get_client_configuration()))
    set_request_headers(api_instance.api_client)
    return api_instance


def get_url_to_connect(api_response):
    ip_address = api_response.session.server.ip
    port = api_response.session.server.port
    web_url_path = api_response.session.server.web_url_path
    connection_token = api_response.connection_token
    session_id = api_response.session.id
    url = f'https://{ip_address}:{port}{web_url_path}?authToken={connection_token}#{session_id}'
    return url


def get_session_connection_data(session_id, user):
    api_response = get_session_connection_api().get_session_connection_data(session_id=session_id, user=user)
    url_to_connect = get_url_to_connect(api_response)
    print('Get Session Connection Data Response:', api_response)
    print('URL to connect: ', url_to_connect)


def main():
    get_session_connection_data('sessionId12345', 'user1')
```

**回應**  
以下是範例輸出。

```
{
    "Session": {
        "Id": "sessionId12345",
        "Name": "a session name",
        "Owner": "an owner 1890",
        "Server": {
            "Ip": "1.1.1.123",
            "Hostname": "server hostname",
            "Port": "1222",
            "endpoints": [
                {
                    "port": 8443,
                    "web_url_path": "/",
                    "protocol": "HTTP"
                },
                {
                    "port": 9443,
                    "web_url_path": "/",
                    "protocol": "HTTP"
                },
                {
                    "port": 8443,
                    "web_url_path": "",
                    "protocol": "QUIC"
                }
            ],
            "WebUrlPath": "/path",
            "Tags": [
                {
                    "Key": "os",
                    "Value": "windows"
                },
                {
                    "Key": "ram",
                    "Value": "4gb"
                }
            ]
        },
        "Type": "VIRTUAL",
        "State": "UNKNOWN",
        "CreationTime": "2020-10-06T10:15:31.633Z",
        "LastDisconnectionTime": "2020-10-06T10:15:31.633Z",
        "NumOfConnections": 2
    },
    "ConnectionToken": "EXAMPLEiOiJmOWM1YTRhZi1jZmU0LTQ0ZjEtYjZlOC04ZjY0YjM4ZTE2ZDkiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJkY3ZTZXNzaW9uSWQiOiJTZXNzaW9uSWQxODk5IiwiZGN2U2Vzc2lvbk93bmVyIjoiYW4gb3duZXIgMTEXAMPLEmRjdlNlc3Npb25Vc2VyIjoibXlVc2VyIiwiZXhwIjoxNjAxOTg1NDA4LCJpYXQiOjE2MDE5ODE4MDgsImp0aSI6IjgwMjljNDUwLTQwMDUtNDJhMy04YTQzLWFmZTM3ZTc4NTQ0ZCJ9.N0RRRT1FZuBgex_0iFwKBAdHdM2JSSADc-tngiKXevUxhhJvm3BPJYRs9NPE4GCJRTc13EXAMPLEIxNEPPh5IMcVmROfU1WKPnry4ypPTp3rsZ7YWjCTSfs1GoN3R_nLFyAxfhPD2yY-Kqtpd5GH0D-E8FwsedV-Q2bRQ4y9y1q0MgFU4QjaSMypUuYR0YjkCaoainjmEZew4A33fG40wATrBvoivBiNWdNpytHX2CDOuk_k0k_DWeZjMvv9jF1f5EXAMPLEm9h5zj_Nb1PKKfBSx9_O6gSJwC9UD-h_GaMgHmltqBIA4jdPD7i0CmC2e7413KFy-EQ4Ej1cM7RjLwhFuWpKWAVJxogJjYpfoKKaPo4KxvJjJIPYhkscklINQpe2W5rnlxCq7sC7ptcGw17DUobP7egRv9H37VD8SrkLyq-hK1G4G8erHvl9HIrTR9_c884fNrTCC8DvC062e4KYdLkAhhJmboN9CAGIGFyd2c1AY_CzzvDL0EXAMLE"
}
```

------