in eci-20180808/alibabacloud_eci20180808/client.py [0:0]
def create_container_group_with_options(self, request, runtime):
"""
When you call the CreateContainerGroup operation to create an elastic container instance, the system creates a service-linked role named AliyunServiceRoleForECI. This role is used to access other Alibaba Cloud services such as Elastic Compute Service (ECS) and Virtual Private Cloud (VPC). For more information, see [Elastic Container Instance service-linked role](~~212914~~).
When you create an elastic container instance, you can configure features such as instances, images, and storage based on your business requirements. For information about parameters configured for the features and the description of the parameters, see the following documents:
**Instances** You can use one of the following methods to create an elastic container instance:
* [Specify the number of vCPUs and memory size to create an elastic container instance](~~114662~~)
* [Specify ECS instance types to create an elastic container instance](~~114664~~)
Both the preceding creation methods support the following features:
* [Specify CPU options](~~197781~~)
* [Create a preemptible elastic container instance](~~157759~~)
* [Configure multiple zones](~~157290~~)
* [Configure multiple specifications](~~146468~~)
* [Use tags to manage elastic container instances](~~146608~~)
**Images**\
* [Configure a container image](~~461311~~)
* [Use the image cache feature to accelerate the creation of an elastic container instance](~~141281~~)
* [Specify a Container Registry Enterprise Edition instance](~~194250~~)
* [Use self-managed image repositories](~~378059~~)
**Networking**\
* [Create and Associate an EIP](~~99146~~)
* [Assign a security group](~~176237~~)
* [Assign an IPv6 address to an elastic container instance](~~451282~~)
* [Configure maximum bandwidth](~~190635~~)
**Storage**\
* [Mount a disk volume](~~144571~~)
* [Mount a NAS volume](~~464075~~)
* [Mount an OSS bucket to an elastic container instance as a volume](~~464076~~)
* [Mount an emptyDir volume](~~464078~~)
* [Mount a ConfigFile volume](~~464080~~)
* [Increase the size of the temporary storage space](~~204066~~)
**Container configuration**\
* [Configure startup commands and arguments for a container](~~94593~~)
* [Use probes to perform health checks on a container](~~99053~~)
* [Obtain metadata by using environment variables](~~141788~~)
* [Configure a security context for an elastic container instance or a container](~~462313~~)
* [Configure the NTP service](~~462768~~)
**Logging and O\\&M**\
* [Use environment variables to configure log collection](~~121973~~)
* [Save core files to volumes](~~167801~~)
@param request: CreateContainerGroupRequest
@param runtime: runtime options for this request RuntimeOptions
@return: CreateContainerGroupResponse
"""
UtilClient.validate_model(request)
query = {}
if not UtilClient.is_unset(request.acr_registry_info):
query['AcrRegistryInfo'] = request.acr_registry_info
if not UtilClient.is_unset(request.active_deadline_seconds):
query['ActiveDeadlineSeconds'] = request.active_deadline_seconds
if not UtilClient.is_unset(request.auto_create_eip):
query['AutoCreateEip'] = request.auto_create_eip
if not UtilClient.is_unset(request.auto_match_image_cache):
query['AutoMatchImageCache'] = request.auto_match_image_cache
if not UtilClient.is_unset(request.client_token):
query['ClientToken'] = request.client_token
if not UtilClient.is_unset(request.compute_category):
query['ComputeCategory'] = request.compute_category
if not UtilClient.is_unset(request.container):
query['Container'] = request.container
if not UtilClient.is_unset(request.container_group_name):
query['ContainerGroupName'] = request.container_group_name
if not UtilClient.is_unset(request.container_resource_view):
query['ContainerResourceView'] = request.container_resource_view
if not UtilClient.is_unset(request.core_pattern):
query['CorePattern'] = request.core_pattern
if not UtilClient.is_unset(request.cpu):
query['Cpu'] = request.cpu
if not UtilClient.is_unset(request.cpu_architecture):
query['CpuArchitecture'] = request.cpu_architecture
if not UtilClient.is_unset(request.cpu_options_core):
query['CpuOptionsCore'] = request.cpu_options_core
if not UtilClient.is_unset(request.cpu_options_numa):
query['CpuOptionsNuma'] = request.cpu_options_numa
if not UtilClient.is_unset(request.cpu_options_threads_per_core):
query['CpuOptionsThreadsPerCore'] = request.cpu_options_threads_per_core
if not UtilClient.is_unset(request.data_cache_bucket):
query['DataCacheBucket'] = request.data_cache_bucket
if not UtilClient.is_unset(request.data_cache_bursting_enabled):
query['DataCacheBurstingEnabled'] = request.data_cache_bursting_enabled
if not UtilClient.is_unset(request.data_cache_pl):
query['DataCachePL'] = request.data_cache_pl
if not UtilClient.is_unset(request.data_cache_provisioned_iops):
query['DataCacheProvisionedIops'] = request.data_cache_provisioned_iops
if not UtilClient.is_unset(request.dns_policy):
query['DnsPolicy'] = request.dns_policy
if not UtilClient.is_unset(request.dry_run):
query['DryRun'] = request.dry_run
if not UtilClient.is_unset(request.egress_bandwidth):
query['EgressBandwidth'] = request.egress_bandwidth
if not UtilClient.is_unset(request.eip_bandwidth):
query['EipBandwidth'] = request.eip_bandwidth
if not UtilClient.is_unset(request.eip_common_bandwidth_package):
query['EipCommonBandwidthPackage'] = request.eip_common_bandwidth_package
if not UtilClient.is_unset(request.eip_isp):
query['EipISP'] = request.eip_isp
if not UtilClient.is_unset(request.eip_instance_id):
query['EipInstanceId'] = request.eip_instance_id
if not UtilClient.is_unset(request.ephemeral_storage):
query['EphemeralStorage'] = request.ephemeral_storage
if not UtilClient.is_unset(request.fixed_ip):
query['FixedIp'] = request.fixed_ip
if not UtilClient.is_unset(request.fixed_ip_retain_hour):
query['FixedIpRetainHour'] = request.fixed_ip_retain_hour
if not UtilClient.is_unset(request.gpu_driver_version):
query['GpuDriverVersion'] = request.gpu_driver_version
if not UtilClient.is_unset(request.host_aliase):
query['HostAliase'] = request.host_aliase
if not UtilClient.is_unset(request.host_name):
query['HostName'] = request.host_name
if not UtilClient.is_unset(request.image_accelerate_mode):
query['ImageAccelerateMode'] = request.image_accelerate_mode
if not UtilClient.is_unset(request.image_registry_credential):
query['ImageRegistryCredential'] = request.image_registry_credential
if not UtilClient.is_unset(request.image_snapshot_id):
query['ImageSnapshotId'] = request.image_snapshot_id
if not UtilClient.is_unset(request.ingress_bandwidth):
query['IngressBandwidth'] = request.ingress_bandwidth
if not UtilClient.is_unset(request.init_container):
query['InitContainer'] = request.init_container
if not UtilClient.is_unset(request.insecure_registry):
query['InsecureRegistry'] = request.insecure_registry
if not UtilClient.is_unset(request.instance_type):
query['InstanceType'] = request.instance_type
if not UtilClient.is_unset(request.ipv_6address_count):
query['Ipv6AddressCount'] = request.ipv_6address_count
if not UtilClient.is_unset(request.ipv_6gateway_bandwidth):
query['Ipv6GatewayBandwidth'] = request.ipv_6gateway_bandwidth
if not UtilClient.is_unset(request.ipv_6gateway_bandwidth_enable):
query['Ipv6GatewayBandwidthEnable'] = request.ipv_6gateway_bandwidth_enable
if not UtilClient.is_unset(request.memory):
query['Memory'] = request.memory
if not UtilClient.is_unset(request.ntp_server):
query['NtpServer'] = request.ntp_server
if not UtilClient.is_unset(request.os_type):
query['OsType'] = request.os_type
if not UtilClient.is_unset(request.overhead_reservation_option):
query['OverheadReservationOption'] = request.overhead_reservation_option
if not UtilClient.is_unset(request.owner_account):
query['OwnerAccount'] = request.owner_account
if not UtilClient.is_unset(request.owner_id):
query['OwnerId'] = request.owner_id
if not UtilClient.is_unset(request.plain_http_registry):
query['PlainHttpRegistry'] = request.plain_http_registry
if not UtilClient.is_unset(request.private_ip_address):
query['PrivateIpAddress'] = request.private_ip_address
if not UtilClient.is_unset(request.ram_role_name):
query['RamRoleName'] = request.ram_role_name
if not UtilClient.is_unset(request.region_id):
query['RegionId'] = request.region_id
if not UtilClient.is_unset(request.region_id):
query['RegionId'] = request.region_id
if not UtilClient.is_unset(request.resource_group_id):
query['ResourceGroupId'] = request.resource_group_id
if not UtilClient.is_unset(request.resource_owner_account):
query['ResourceOwnerAccount'] = request.resource_owner_account
if not UtilClient.is_unset(request.resource_owner_id):
query['ResourceOwnerId'] = request.resource_owner_id
if not UtilClient.is_unset(request.restart_policy):
query['RestartPolicy'] = request.restart_policy
if not UtilClient.is_unset(request.schedule_strategy):
query['ScheduleStrategy'] = request.schedule_strategy
if not UtilClient.is_unset(request.security_group_id):
query['SecurityGroupId'] = request.security_group_id
if not UtilClient.is_unset(request.share_process_namespace):
query['ShareProcessNamespace'] = request.share_process_namespace
if not UtilClient.is_unset(request.spot_duration):
query['SpotDuration'] = request.spot_duration
if not UtilClient.is_unset(request.spot_price_limit):
query['SpotPriceLimit'] = request.spot_price_limit
if not UtilClient.is_unset(request.spot_strategy):
query['SpotStrategy'] = request.spot_strategy
if not UtilClient.is_unset(request.strict_spot):
query['StrictSpot'] = request.strict_spot
if not UtilClient.is_unset(request.tag):
query['Tag'] = request.tag
if not UtilClient.is_unset(request.termination_grace_period_seconds):
query['TerminationGracePeriodSeconds'] = request.termination_grace_period_seconds
if not UtilClient.is_unset(request.v_switch_id):
query['VSwitchId'] = request.v_switch_id
if not UtilClient.is_unset(request.volume):
query['Volume'] = request.volume
if not UtilClient.is_unset(request.zone_id):
query['ZoneId'] = request.zone_id
if not UtilClient.is_unset(request.dns_config):
query['DnsConfig'] = request.dns_config
if not UtilClient.is_unset(request.host_security_context):
query['HostSecurityContext'] = request.host_security_context
if not UtilClient.is_unset(request.security_context):
query['SecurityContext'] = request.security_context
req = open_api_models.OpenApiRequest(
query=OpenApiUtilClient.query(query)
)
params = open_api_models.Params(
action='CreateContainerGroup',
version='2018-08-08',
protocol='HTTPS',
pathname='/',
method='POST',
auth_type='AK',
style='RPC',
req_body_type='formData',
body_type='json'
)
return TeaCore.from_map(
eci_20180808_models.CreateContainerGroupResponse(),
self.call_api(params, req, runtime)
)