CreateSessions - Amazon DCV 会话管理器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CreateSessions

使用指定的详细信息创建新的 Amazon DCV 会话。

请求参数

Name

会话的名称。

类型:字符串

必需:是

Owner

会话所有者的名称。这必须是目标 Amazon DCV 服务器上现有用户的姓名。

类型:字符串

必需:是

Type

会话类型。有关会话类型的更多信息,请参阅《亚马逊DCV管理员指南》中的 Amazon DCV 会话简介

有效值:CONSOLE| VIRTUAL

类型:字符串

必需:是

InitFile

支持在 Linux Amazon DCV 服务器上使用虚拟会话。Windows 和 Linux Amazon DCV 服务器上的控制台会话不支持该功能。创建会话时在 Amazon DCV 服务器上运行的用于初始化会话的自定义脚本的路径。文件路径相对于为 agent.init_folder Agent 配置参数指定的 init 目录。如果文件位于指定的 init 目录中,请仅指定文件名。如果文件没有位于指定的 init 目录中,请指定相对路径。有关更多信息,请参阅 Amazon Sessi DCV on Manager 管理员指南中的代理配置文件

类型:字符串

必需:否

MaxConcurrents

并发 Amazon DCV 客户的最大数量。

类型:整数

必需:否

DcvGlEnabled

指示虚拟会话是否配置为使用基于硬件的 OpenGL。仅虚拟会话支持。Windows 亚马逊DCV服务器不支持此参数。

有效值:true | false

类型:布尔值

必需:否

PermissionsFile

Base64 编码的权限文件内容。如果省略,则默认为服务器默认值。有关更多信息,请参阅《亚马逊DCV管理员指南》中的配置亚马逊DCV授权

类型:字符串

必需:否

EnqueueRequest

指示在无法立即完成请求时是否将其排入队列。

类型:布尔值

默认:false

必需:否

AutorunFile

支持 Windows 亚马逊DCV服务器上的控制台会话和 Linux 亚马逊DCV服务器上的虚拟会话。Linux Amazon DCV 服务器上的控制台会话不支持该功能。

位于主机服务器上并在会话中运行的文件的路径。文件路径相对于为 agent.autorun_folder Agent 配置参数指定的 autorun 目录。如果文件位于指定的 autorun 目录中,请仅指定文件名。如果文件没有位于指定的 autorun 目录中,请指定相对路径。有关更多信息,请参阅 Amazon Sessi DCV on Manager 管理员指南中的代理配置文件

该文件是代表指定所有者运行的。指定的所有者必须有权在服务器上运行该文件。在 Windows Amazon DCV 服务器上,文件在所有者登录会话时运行。在 Linux Amazon DCV 服务器上,文件在创建会话时运行。

类型:字符串

必需:否

AutorunFileArguments

支持在 Linux Amazon DCV 服务器上使用虚拟会话。在 Windows 和 Linux Amazon DCV 服务器上的控制台会话中不支持该功能。命令行参数在会话中执行AutorunFile时传递给。参数是按照它们在给定数组中的出现顺序传递的。可以配置最大允许参数数量以及每个参数的最大允许长度。有关更多信息,请参阅 Amazon Sessi DCV on Manager 管理员指南中的代理配置文件

类型:字符串数组

必需:否

DisableRetryOnFailure

表示在创建会话请求由于任何原因在 Amazon DCV 主机上失败后是否不重试。有关创建会话重试机制的更多信息,请参阅 Amazon DCV Session Manager 管理员指南中的代理配置文件

类型:布尔值

默认:false

必需:否

Requirements

服务器必须满足才能放置会话的要求。要求可能包括服务器标签和/或服务器属性,服务器标签和服务器属性均可通过调用来检索DescribeServersAPI。

要求条件表达式:

  • a != b 如果是真的 a 不等于 b

  • a = b 如果是真的 a 等于 b

  • a > b 如果是真的 a 大于 b

  • a >= b 如果是真的 a 大于或等于 b

  • a < b 如果是真的 a 小于 b

  • a <= b 如果是真的 a 小于或等于 b

  • a = b 如果是真的 a 包含字符串 b

要求布尔运算符:

  • a b 如果是真的 a 以及 b 是真的

  • a 或者 b 如果是真的 a 或者 b 是真的

  • 不是 a 如果是真的 a 是假的

标签键必须以 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 会话存储的更多信息,请参阅《亚马逊DCV管理员指南》中的 “启用会话存储”。

类型:字符串

必需:否

响应参数

Id

会话的唯一 ID。

Name

会话名称。

Owner

会话所有者。

Type

会话的类型。

State

会话的状态。如果请求成功完成,会话将进入 CREATING 状态。

Substate

会话的子状态。如果请求成功完成,会话将进入 SESSION_PLACING 子状态。

示例

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": [ ] }