gce_vm_create {googleComputeEngineR} | R Documentation |
Creates an instance resource in the specified project using the data included in the request.
Description
Creates an instance resource in the specified project using the data included in the request.
Usage
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")
Arguments
name |
The name of the resource, provided by the client when initially creating the resource |
predefined_type |
A predefined machine type from gce_list_machinetype |
image_project |
Project ID of where the image lies |
image_family |
Name of the image family to search for |
cpus |
If not defining |
memory |
If not defining |
image |
Name of the image resource to return |
disk_source |
Specifies a valid URL to an existing Persistent Disk resource. |
network |
The name of the network interface |
externalIP |
An external IP you have previously reserved, leave NULL to have one assigned or |
canIpForward |
Allows this instance to send and receive packets with non-matching destination or source IPs |
description |
An optional description of this resource |
metadata |
A named list of metadata key/value pairs assigned to this instance |
scheduling |
Scheduling options for this instance, such as preemptible instances |
serviceAccounts |
A list of service accounts, with their specified scopes, authorized for this instance |
tags |
A list of tags to apply to this instance |
minCpuPlatform |
Specify a minimum CPU platform as per https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform |
project |
Project ID for this request |
zone |
The name of the zone for this request |
dry_run |
whether to just create the request JSON |
disk_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_gpus |
Details
Authentication scopes used by this function are:
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/compute
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:
Name
Project [if not default]
Zone [if not default]
Machine type - either a predefined type or custom CPU and memory
Network - usually default, specifies open ports etc.
Image - a source image containing the operating system
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
Value
A zone operation, or if the name already exists the VM object from gce_get_instance
Preemptible VMS
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.
GPUs
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.