

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

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

使用指定的詳細資訊建立新的 Amazon DCV 工作階段。

**Topics**
+ [請求參數](#request)
+ [回應參數](#response)
+ [範例](#example)

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

**`Name`**  
工作階段的名稱。  
類型：字串  
必要：是

**`Owner`**  
工作階段擁有者的名稱。這必須是目標 Amazon DCV 伺服器上現有使用者的名稱。  
類型：字串  
必要：是

**`Type`**  
工作階段類型。如需工作階段類型的詳細資訊，請參閱《[Amazon DCV 管理員指南》中的 Amazon DCV 工作階段簡介](https://docs.aws.amazon.com/dcv/latest/adminguide/managing-sessions.html)。 **  
有效值：CONSOLE \| VIRTUAL  
類型：字串  
必要：是

**`InitFile`**  
Linux Amazon DCV 伺服器上的虛擬工作階段支援。Windows 和 Linux Amazon DCV 伺服器上的主控台工作階段不支援此功能。在建立工作階段時，要在 Amazon DCV 伺服器上執行以初始化工作階段的自訂指令碼路徑。檔案路徑相對於為 `agent.init_folder` 代理程式組態參數指定的 init 目錄。如果檔案位於指定的 init 目錄中，請僅指定檔案名稱。如果檔案不在指定的 init 目錄中，請指定相對路徑。如需詳細資訊，請參閱《*Amazon DCV Session Manager 管理員指南*》中的[客服人員組態檔案](https://docs.aws.amazon.com/dcv/latest/sm-admin/agent-file.html)。  
類型：字串  
必要：否

**`MaxConcurrents`**  
並行 Amazon DCV 用戶端的數量上限。  
類型：整數  
必要：否

**`DcvGlEnabled`**  
指出虛擬工作階段是否設定為使用硬體型 OpenGL。僅支援虛擬工作階段。Windows Amazon DCV 伺服器不支援此參數。  
有效值：true \| false  
類型：布林值  
必要：否

**`PermissionsFile`**  
許可檔案的 Base64-encoded內容。如果省略，則預設為伺服器預設值。如需詳細資訊，請參閱《[Amazon DCV 管理員指南》中的設定 Amazon DCV 授權](https://docs.aws.amazon.com/dcv/latest/adminguide/security-authorization.html)。 **  
類型：字串  
必要：否

**`EnqueueRequest`**  
指出如果請求無法立即履行，是否將請求排入佇列。  
類型：布林值  
預設：false  
必要：否

**`AutorunFile`**  
在 Windows Amazon DCV 伺服器上支援主控台工作階段，並在 Linux Amazon DCV 伺服器上支援虛擬工作階段。Linux Amazon DCV 伺服器上的主控台工作階段不支援此功能。  
要在工作階段中執行之主機伺服器上檔案的路徑。檔案路徑相對於為 `agent.autorun_folder` 代理程式組態參數指定的自動執行目錄。如果檔案位於指定的自動執行目錄中，請僅指定檔案名稱。如果檔案不在指定的自動執行目錄中，請指定相對路徑。如需詳細資訊，請參閱《*Amazon DCV Session Manager 管理員指南*》中的[客服人員組態檔案](https://docs.aws.amazon.com/dcv/latest/sm-admin/agent-file.html)。  
檔案會代表指定的**擁有者**執行。指定的擁有者必須具有在伺服器上執行 檔案的許可。在 Windows Amazon DCV 伺服器上，檔案會在擁有者登入工作階段時執行。在 Linux Amazon DCV 伺服器上，檔案會在工作階段建立時執行。  
類型：字串  
必要：否

**`AutorunFileArguments`**  
Linux Amazon DCV 伺服器上的虛擬工作階段支援。Windows 和 Linux Amazon DCV 伺服器的主控台工作階段不支援此功能。在工作階段內執行命令列引數時傳遞至 **AutorunFile**。引數會依照在指定陣列中出現的順序傳遞。可以設定允許的引數數目上限和每個引數允許的長度上限。如需詳細資訊，請參閱《*Amazon DCV Session Manager 管理員指南*》中的[中介裝置組態檔案](https://docs.aws.amazon.com/dcv/latest/sm-admin/broker-file.html)。  
類型：字串陣列  
必要：否

**`DisableRetryOnFailure`**  
指出在 Amazon DCV 主機上因任何原因失敗之後，是否不重試建立工作階段請求。如需建立工作階段重試機制的詳細資訊，請參閱《*Amazon DCV Session Manager 管理員指南*》中的[中介裝置組態檔案](https://docs.aws.amazon.com/dcv/latest/sm-admin/broker-file.html)。  
類型：布林值  
預設：false  
必要：否

**`Requirements`**  
伺服器必須符合的要求，才能放置工作階段。需求可能包括伺服器標籤和/或伺服器屬性，伺服器標籤和伺服器屬性都是透過呼叫 **DescribeServers** API 來擷取。  
需求條件表達式：  
+ {{a}} **！=** {{b}} 如果 {{a}} 不等於 {{b}}，則為 true
+ {{a}} **=** {{b}} 如果 {{a}} 等於 {{b}}，則為 true
+ {{a}} **>** {{b}} 如果 {{a}} 大於 {{b}}，則為 true
+ a{{}} **>=** {{b}} 如果 {{a}} 大於或等於 {{b}} 則為 true
+ 如果 {{a}} 小於 {{b}}{{，則為}} **<** {{b}} true
+ {{a}} **<=** {{b}} 如果 {{a}} 小於或等於 {{b}} 則為 true
+ a{{}} **：=** {{b}} 如果 {{a}} 包含字串 {{b}} 則為 true
需求布林值運算子：  
+ {{a}} **和** {{b}} 若 {{a}} 和 {{b}} 為 true，則為 true
+ 如果 {{a}} **或** {{b}} 為 true，{{則為 a}} 或 {{b}} true
+ 如果 a {{為}} false{{，}}**則不是** true
標籤索引鍵的字首必須是 `tag:`，伺服器屬性的字首必須是 `server:`。需求表達式支援括號 `()`。  
需求範例：  
+ `tag:color = 'pink' and (server:Host.Os.Family = 'windows' or tag:color := 'red')`
+ `"server:Host.Aws.Ec2InstanceType := 't2' and server:Host.CpuInfo.NumberOfCpus >= 2"`
您可以使用指數表示法來指定數值，例如：`"server:Host.Memory.TotalBytes > 1024E6"`。  
支援的伺服器屬性為：  
+ `Id`
+ `Hostname`
+ `Version`
+ `SessionManagerAgentVersion`
+ `Host.Os.BuildNumber`
+ `Host.Os.Family`
+ `Host.Os.KernelVersion`
+ `Host.Os.Name`
+ `Host.Os.Version`
+ `Host.Memory.TotalBytes`
+ `Host.Memory.UsedBytes`
+ `Host.Swap.TotalBytes`
+ `Host.Swap.UsedBytes`
+ `Host.CpuLoadAverage.OneMinute`
+ `Host.CpuLoadAverage.FiveMinutes`
+ `Host.CpuLoadAverage.FifteenMinutes`
+ `Host.Aws.Ec2InstanceId`
+ `Host.Aws.Ec2InstanceType`
+ `Host.Aws.Region`
+ `Host.Aws.Ec2ImageId`
+ `Host.CpuInfo.Architecture`
+ `Host.CpuInfo.ModelName`
+ `Host.CpuInfo.NumberOfCpus`
+ `Host.CpuInfo.PhysicalCoresPerCpu`
+ `Host.CpuInfo.Vendor`
類型：字串  
必要：否

**`StorageRoot`**  
指定要用於儲存工作階段之資料夾的路徑。如需 Amazon DCV 工作階段儲存體的詳細資訊，請參閱《*Amazon DCV 管理員指南*》中的[啟用工作階段儲存](https://docs.aws.amazon.com/dcv/latest/adminguide/manage-storage.html)體。  
類型：字串  
必要：否

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

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

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

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

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

**`State`**  
工作階段的狀態。如果請求成功完成，工作階段會進入 `CREATING` 狀態。

**`Substate`**  
工作階段的子狀態。如果請求成功完成，則子狀態會進入`SESSION_PLACING`子狀態。

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

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

**請求**  
下列範例會建立三個工作階段。

```
from swagger_client.models.create_session_request_data import CreateSessionRequestData

def get_sessions_api():
    api_instance = swagger_client.SessionsApi(swagger_client.ApiClient(get_client_configuration()))
    set_request_headers(api_instance.api_client)
    return api_instance

def create_sessions(sessions_to_create):
    create_sessions_request = list()
    for name, owner, session_type, init_file_path, autorun_file, autorun_file_arguments, max_concurrent_clients,\
            dcv_gl_enabled, permissions_file, requirements, storage_root in sessions_to_create:
        a_request = CreateSessionRequestData(
            name=name, owner=owner, type=session_type,
            init_file_path=init_file_path, autorun_file=autorun_file, autorun_file_arguments=autorun_file_arguments, max_concurrent_clients=max_concurrent_clients,
            dcv_gl_enabled=dcv_gl_enabled, permissions_file=permissions_file, requirements=requirements, storage_root=storage_root)
        create_sessions_request.append(a_request)

    api_instance = get_sessions_api()
    print('Create Sessions Request:', create_sessions_request)
    api_response = api_instance.create_sessions(body=create_sessions_request)
    print('Create Sessions Response:', api_response)

def main():
    create_sessions([
    ('session1', 'user1', 'CONSOLE', None, None, None, 1, None, '/dcv/permissions.file', "tag:os = 'windows' and server:Host.Memory.TotalBytes > 1024", "/storage/root"),
    ('session2', 'user1', 'VIRTUAL', None, 'myapp.sh', None, 1, False, None, "tag:os = 'linux'", None),
    ('session3', 'user1', 'VIRTUAL', '/dcv/script.sh', 'myapp.sh', ['argument1', 'argument2'], 1, False, None, "tag:os = 'linux'", None),
])
```

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

```
{
              "RequestId": "e32d0b83-25f7-41e7-8c8b-e89326ecc87f",
    "SuccessfulList": [
    {
            "Id": "78b45deb-1163-46b1-879b-7d8fcbe9d9d6",
            "Name": "session1",
            "Owner": "user1",
            "Type": "CONSOLE",
            "State": "CREATING"
    },
    {
            "Id": " a0c743c4-9ff7-43ce-b13f-0c4d55a268dd",
            "Name": "session2",
            "Owner": "user1",
            "Type": "VIRTUAL",
            "State": "CREATING"
    },
    {
            "Id": " 10311636-df90-4cd1-bcf7-474e9675b7cd",
            "Name": "session3",
            "Owner": "user1",
            "Type": "VIRTUAL",
            "State": "CREATING"
    }
    ],
    "UnsuccessfulList": [
    ]
}
```

------