Creates an instance resource in the specified project using the data included in the request.
gce_vm_create(name, predefined_type = "f1-micro", image_project = "debian-cloud", image_family = "debian-8", cpus = NULL, memory = NULL, image = "", disk_source = NULL, network = "default", externalIP = NULL, canIpForward = NULL, description = NULL, metadata = NULL, scheduling = NULL, serviceAccounts = NULL, tags = NULL, minCpuPlatform = NULL, project = gce_get_global_project(), zone = gce_get_global_zone(), dry_run = FALSE, disk_size_gb = NULL, use_beta = FALSE, acceleratorCount = NULL, acceleratorType = "nvidia-tesla-p4")
name
: The name of the resource, provided by the client when initially creating the resourcepredefined_type
: A predefined machine type from gce_list_machinetypeimage_project
: Project ID of where the image liesimage_family
: Name of the image family to search forcpus
: If not defining predefined_type
, the number of CPUsmemory
: If not defining predefined_type
, amount of memoryimage
: Name of the image resource to returndisk_source
: Specifies a valid URL to an existing Persistent Disk resource.network
: The name of the network interfaceexternalIP
: An external IP you have previously reserved, leave NULL to have one assigned or "none"
for no external access.canIpForward
: Allows this instance to send and receive packets with non-matching destination or source IPsdescription
: An optional description of this resourcemetadata
: A named list of metadata key/value pairs assigned to this instancescheduling
: Scheduling options for this instance, such as preemptible instancesserviceAccounts
: A list of service accounts, with their specified scopes, authorized for this instancetags
: A list of tags to apply to this instanceminCpuPlatform
: Specify a minimum CPU platform as per [https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform](these Google docs)project
: Project ID for this requestzone
: The name of the zone for this requestdry_run
: whether to just create the request JSONdisk_size_gb
: If not NULL, override default size of the boot disk (size in GB)use_beta
: If set to TRUE will use the beta version of the API. Should not be used for production purposes.acceleratorCount
: Number of GPUs to add to instance. If using this, you may want to instead use gce_vm_gpu which sets some defaults for GPU instances.acceleratorType
: Name of GPU to add, see gce_list_gpusA zone operation, or if the name already exists the VM object from gce_get_instance
Authentication scopes used by this function are:
cpus
must be in multiples of 2 up to 32 memory
must be in multiples of 256
One of image
or image_family
must be supplied
To create an instance you need to specify:
You can add metadata to the server such as startup-script
and shutdown-script
. Details available here: https://cloud.google.com/compute/docs/storing-retrieving-metadata
If you want to not have an external IP then modify the instance afterwards
You can set preemptible VMs by passing this in the scheduling
arguments scheduling = list(preemptible = TRUE)
This creates a VM that may be shut down prematurely by Google - you will need to sort out how to save state if that happens in a shutdown script etc. However, these are much cheaper.
Some defaults for launching GPU enabled VMs are available at gce_vm_gpu
You can add GPUs to your instance, but they must be present in the zone you have specified - use gce_list_gpus to see which are available. Refer to this link for a list of current GPUs per zone.
Useful links