CINXE.COM
Consume reservations | Compute Engine Documentation | Google Cloud
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/webhistory"> <meta property="og:site_name" content="Google Cloud"> <meta property="og:type" content="website"><meta name="theme-color" content="#039be5"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/cloud/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://cloud.google.com/compute/docs/instances/reservations-consume"><link rel="search" type="application/opensearchdescription+xml" title="Google Cloud" href="https://cloud.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://cloud.google.com/compute/docs/instances/reservations-consume" /><link rel="alternate" hreflang="x-default" href="https://cloud.google.com/compute/docs/instances/reservations-consume" /><link rel="alternate" hreflang="zh-Hans" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=zh-cn" /><link rel="alternate" hreflang="fr" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=fr" /><link rel="alternate" hreflang="de" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=de" /><link rel="alternate" hreflang="id" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=id" /><link rel="alternate" hreflang="it" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=it" /><link rel="alternate" hreflang="ja" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=ja" /><link rel="alternate" hreflang="ko" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=ko" /><link rel="alternate" hreflang="pt-BR" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=pt-br" /><link rel="alternate" hreflang="es-419" href="https://cloud.google.com/compute/docs/instances/reservations-consume?hl=es-419" /><title>Consume reservations | Compute Engine Documentation | Google Cloud</title> <meta property="og:title" content="Consume reservations | Compute Engine Documentation | Google Cloud"><meta name="description" content="Consume reservations of Compute Engine VM instances, verify their consumption, or view their usage reports."> <meta property="og:description" content="Consume reservations of Compute Engine VM instances, verify their consumption, or view their usage reports."><meta property="og:url" content="https://cloud.google.com/compute/docs/instances/reservations-consume"><meta property="og:image" content="https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Consume reservations" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Compute Engine", "item": "https://cloud.google.com/compute" },{ "@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://cloud.google.com/compute/docs" },{ "@type": "ListItem", "position": 3, "name": "Consume reservations", "item": "https://cloud.google.com/compute/docs/instances/reservations-consume" }] } </script> <link href="https://fonts.googleapis.com/css2?family=Google+Symbols" rel="stylesheet" data-page-link> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="cloud-theme" type="article" layout="docs" free-trial display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><cloudx-track userCountry="SG"></cloudx-track> <cloudx-utils-init></cloudx-utils-init> <devsite-header keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <cloudx-tabs-nav class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs" track-type="nav" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" aria-label="Documentation, selected" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" > Documentation </a> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/tech-area-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-type="nav" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > Technology areas </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Technology areas" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/ai-ml" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/ai-ml" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> AI and ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-development" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-development" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-hosting" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-hosting" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/compute-area" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/compute-area" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Compute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/data" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/data" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Data analytics and pipelines </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/databases" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/databases" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Databases </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/dhm-cloud" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/dhm-cloud" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Distributed, hybrid, and multicloud </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/generative-ai" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/generative-ai" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/industry" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/industry" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Industry solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/networking" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/networking" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Networking </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/observability" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/observability" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Observability and monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/security" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/security" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/storage" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/cross-product-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-type="nav" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > Cross-product tools </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Cross-product tools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/access-resources" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/access-resources" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Access and resources management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/costs-usage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/costs-usage" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Costs and usage management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/devtools" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud SDK, languages, frameworks, and tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/iac" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/iac" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Infrastructure as code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/migration" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/migration" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Migration </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/" track-type="nav" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > Related sites </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Related sites" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Home </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/free" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/free" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Free Trial and Free Tier </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/architecture" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/architecture" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Architecture Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/blog" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/contact" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/contact" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Contact Sales </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/developers" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/developers" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" track-type="nav" track-metadata-eventdetail="https://developers.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/marketplace" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/marketplace/docs" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/marketplace/docs" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace Documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" track-type="nav" track-metadata-eventdetail="https://www.cloudskillsboost.google/paths" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Skills Boost </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/solutions" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/solutions" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Solution Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/support-hub" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/support-hub" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Support </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/@googlecloudtech" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Tech Youtube Channel </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </cloudx-tabs-nav> </div> <devsite-search enable-signin enable-search enable-suggestions project-name="Compute Engine Documentation" tenant-name="Google Cloud" project-scope="/compute/docs" url-scoped="https://cloud.google.com/s/results/compute/docs" > <form class="devsite-search-form" action="https://cloud.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" hidden> <div class="devsite-product-description-row"> </div> </div> <div class="devsite-doc-set-nav-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/compute" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Compute Engine: Virtual Machines (VMs)" > Compute Engine </a> </li> </ul> <cloudx-tabs-nav class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/compute/docs/overview" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/compute/docs/overview" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://cloud.google.com/compute/docs/apis" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/compute/docs/apis" track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://cloud.google.com/compute/docs/samples" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/compute/docs/samples" track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> <tab > <a href="https://cloud.google.com/compute/docs/resources" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/compute/docs/resources" track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> </tab> </nav> </cloudx-tabs-nav> <div class="devsite-product-button-row"> <a href="https://cloud.google.com/contact" class="cta-button-secondary button " track-name="sales" data-overflow-container="left" track-metadata-eventDetail="nav" data-overflow="devsite-tabs-wrapper" data-overflow-wrapper="tab" track-type="contact" track-metadata-position="nav" >Contact Us</a> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary " data-overflow-container="right" track-metadata-eventDetail="nav" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" referrerpolicy="no-referrer-when-downgrade" track-type="freeTrial" data-overflow="devsite-top-logo-row" track-name="gcpCta" track-metadata-position="nav" >Start free</a> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/compute/docs/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/compute/docs/apis" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/compute/docs/samples" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/compute/docs/resources" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/tech-area-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technology areas" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technology areas </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Technology areas"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Technology areas"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/cross-product-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-product tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-product tools </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Cross-product tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Cross-product tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Related sites" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Related sites </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Related sites"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Related sites"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/" class="devsite-nav-title gc-analytics-event " track-metadata-eventDetail="nav" track-name="console" referrerpolicy="no-referrer-when-downgrade" track-metadata-position="nav" track-type="globalNav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Console </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="cta-button-secondary button" track-name="sales" data-overflow-container="left" track-metadata-eventDetail="nav" data-overflow="devsite-tabs-wrapper" data-overflow-wrapper="tab" track-type="contact" track-metadata-position="nav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Us" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Us </span> </a> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary" data-overflow-container="right" track-metadata-eventDetail="nav" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" referrerpolicy="no-referrer-when-downgrade" track-type="freeTrial" data-overflow="devsite-top-logo-row" track-name="gcpCta" track-metadata-position="nav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start free" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start free </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Discover</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/overview" ><span class="devsite-nav-text" tooltip>Product overview</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances" ><span class="devsite-nav-text" tooltip>Compute Engine instances</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/instance-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups" ><span class="devsite-nav-text" tooltip>Instance groups</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Machine type families</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/machine-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/machine-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/machine-resource" ><span class="devsite-nav-text" tooltip>Machine resource guide</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/general-purpose-machines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/general-purpose-machines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/general-purpose-machines" ><span class="devsite-nav-text" tooltip>General-purpose machines</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/storage-optimized-machines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/storage-optimized-machines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/storage-optimized-machines" ><span class="devsite-nav-text" tooltip>Storage-optimized machines</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/compute-optimized-machines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/compute-optimized-machines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/compute-optimized-machines" ><span class="devsite-nav-text" tooltip>Compute-optimized machines</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/memory-optimized-machines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/memory-optimized-machines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/memory-optimized-machines" ><span class="devsite-nav-text" tooltip>Memory-optimized machines</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/accelerator-optimized-machines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/accelerator-optimized-machines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/accelerator-optimized-machines" ><span class="devsite-nav-text" tooltip>Accelerator-optimized machines</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/coremark-scores-of-vm-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/coremark-scores-of-vm-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/coremark-scores-of-vm-instances" ><span class="devsite-nav-text" tooltip>CoreMark scores of VM instances by family</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/cpu-platforms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/cpu-platforms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/cpu-platforms" ><span class="devsite-nav-text" tooltip>CPU platforms</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>GPUs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/overview" ><span class="devsite-nav-text" tooltip>About GPUs on Google Cloud</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus" ><span class="devsite-nav-text" tooltip>GPU machine types</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Regions and zones</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/regions-zones" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/regions-zones" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/regions-zones" ><span class="devsite-nav-text" tooltip>About regions and zones</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/gpu-regions-zones" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/gpu-regions-zones" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/gpu-regions-zones" ><span class="devsite-nav-text" tooltip>GPU regions and zones</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/regions-zones/global-regional-zonal-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/regions-zones/global-regional-zonal-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/regions-zones/global-regional-zonal-resources" ><span class="devsite-nav-text" tooltip>Global, regional, and zonal resources</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Get started</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Plan and prepare</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with regions and zones</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/regions-zones/viewing-regions-zones" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/regions-zones/viewing-regions-zones" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/regions-zones/viewing-regions-zones" ><span class="devsite-nav-text" tooltip>View available regions and zones</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/regions-zones/changing-default-zone-region" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/regions-zones/changing-default-zone-region" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/regions-zones/changing-default-zone-region" ><span class="devsite-nav-text" tooltip>Change the default region or zone</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Review VM deployment options</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/choose-compute-deployment-option" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/choose-compute-deployment-option" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/choose-compute-deployment-option" ><span class="devsite-nav-text" tooltip>Choose a deployment strategy</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/about-vm-tenancy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/about-vm-tenancy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/about-vm-tenancy" ><span class="devsite-nav-text" tooltip>About VM tenancy</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/arm-on-compute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/arm-on-compute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/arm-on-compute" ><span class="devsite-nav-text" tooltip>Arm VMs on Compute</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/robustsystems" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/robustsystems" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/robustsystems" ><span class="devsite-nav-text" tooltip>Design resilient systems</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/networking/network-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/network-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/network-overview" ><span class="devsite-nav-text" tooltip>Networking overview for VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Images and operating systems</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>OS images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images" ><span class="devsite-nav-text" tooltip>About OS images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/os-details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/os-details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/os-details" ><span class="devsite-nav-text" tooltip>Operating system details</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/os-image-lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/os-image-lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/os-image-lifecycle" ><span class="devsite-nav-text" tooltip>OS image lifecycle</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/support-maintenance-policy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/support-maintenance-policy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/support-maintenance-policy" ><span class="devsite-nav-text" tooltip>Support policy</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Premium operating systems</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/images/premium/rhel-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/rhel-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/rhel-faq" ><span class="devsite-nav-text" tooltip>RHEL FAQ</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/premium/sles-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/sles-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/sles-faq" ><span class="devsite-nav-text" tooltip>SLES FAQ</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/premium/ubuntu-pro-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/ubuntu-pro-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/ubuntu-pro-faq" ><span class="devsite-nav-text" tooltip>Ubuntu Pro FAQ</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/ms-licensing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/ms-licensing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/ms-licensing" ><span class="devsite-nav-text" tooltip>Microsoft Licensing on Google Cloud</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/ms-licensing-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/ms-licensing-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/ms-licensing-faq" ><span class="devsite-nav-text" tooltip>Microsoft licenses FAQ</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Access control</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access" ><span class="devsite-nav-text" tooltip>Access control overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/access/managing-access-to-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/managing-access-to-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/managing-access-to-resources" ><span class="devsite-nav-text" tooltip>Manage access to Compute Engine resources</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/access/custom-constraints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/custom-constraints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/custom-constraints" ><span class="devsite-nav-text" tooltip>Manage resources by using custom constraints</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/access/iam" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/iam" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/iam" ><span class="devsite-nav-text" tooltip>IAM roles and permissions</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/access/service-accounts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/service-accounts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/service-accounts" ><span class="devsite-nav-text" tooltip>Service accounts</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/naming-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/naming-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/naming-resources" ><span class="devsite-nav-text" tooltip>Name resources</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Quickstarts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/create-linux-vm-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/create-linux-vm-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/create-linux-vm-instance" ><span class="devsite-nav-text" tooltip>Create a Linux VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/create-windows-server-vm-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/create-windows-server-vm-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/create-windows-server-vm-instance" ><span class="devsite-nav-text" tooltip>Create a Windows Server VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/quickstart-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/quickstart-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/quickstart-mig" ><span class="devsite-nav-text" tooltip>Create a managed instance group</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Create instances</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/instance-creation-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/instance-creation-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/instance-creation-overview" ><span class="devsite-nav-text" tooltip>Instance creation overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-start-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-start-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-start-instance" ><span class="devsite-nav-text" tooltip>Create and start an instance</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance and customize machine configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/custom-hostname-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/custom-hostname-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/custom-hostname-vm" ><span class="devsite-nav-text" tooltip>Create an instance with a custom hostname</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/creating-instance-with-custom-machine-type" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/creating-instance-with-custom-machine-type" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/creating-instance-with-custom-machine-type" ><span class="devsite-nav-text" tooltip>Create an instance with a custom machine type</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/specify-min-cpu-platform" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/specify-min-cpu-platform" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/specify-min-cpu-platform" ><span class="devsite-nav-text" tooltip>Specify a minimum CPU platform for an instance</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance with attached GPUs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/create-vm-with-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/create-vm-with-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/create-vm-with-gpus" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Accelerator-optimized instances</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/create-gpu-vm-accelerator-optimized" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/create-gpu-vm-accelerator-optimized" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/create-gpu-vm-accelerator-optimized" ><span class="devsite-nav-text" tooltip>Create an accelerator-optimized instance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/gpudirect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/gpudirect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/gpudirect" ><span class="devsite-nav-text" tooltip>Create an A3 instance with GPUDirect-TCPX enabled</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/create-gpu-vm-general-purpose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/create-gpu-vm-general-purpose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/create-gpu-vm-general-purpose" ><span class="devsite-nav-text" tooltip>Create an N1 instance that has attached GPUs</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance and customize OS configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-from-public-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-from-public-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-from-public-image" ><span class="devsite-nav-text" tooltip>Create an instance from a public image</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-from-custom-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-from-custom-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-from-custom-image" ><span class="devsite-nav-text" tooltip>Create an instance from a custom image</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-from-shared-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-from-shared-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-from-shared-image" ><span class="devsite-nav-text" tooltip>Create an instance from a shared image</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-rhel-byos-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-rhel-byos-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-rhel-byos-vm" ><span class="devsite-nav-text" tooltip>Create an instance using a RHEL BYOS image</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance and customize networking configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-specific-subnet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-specific-subnet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-specific-subnet" ><span class="devsite-nav-text" tooltip>Create an instance in a specific subnet</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance and customize observability configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-ops-agent-monitoring-logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-ops-agent-monitoring-logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-ops-agent-monitoring-logging" ><span class="devsite-nav-text" tooltip>Create an instance for Ops Agent monitoring and logging</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/enable-instance-virtual-display" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/enable-instance-virtual-display" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/enable-instance-virtual-display" ><span class="devsite-nav-text" tooltip>Enable virtual displays on an instance</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance and customize security configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/access/create-enable-service-accounts-for-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/create-enable-service-accounts-for-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/create-enable-service-accounts-for-instances" ><span class="devsite-nav-text" tooltip>Create an instance that uses a user-managed service account</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an instance using an existing configuration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-from-instance-template" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-from-instance-template" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-from-instance-template" ><span class="devsite-nav-text" tooltip>Create an instance from an instance template</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-from-similar-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-from-similar-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-from-similar-instance" ><span class="devsite-nav-text" tooltip>Create an instance similar to an existing instance</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create a Spot VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Spot VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/spot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/spot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/spot" ><span class="devsite-nav-text" tooltip>About Spot VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-use-spot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-use-spot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-use-spot" ><span class="devsite-nav-text" tooltip>Create and use Spot VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Preemptible VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-unsupported"><a href="/compute/docs/instances/preemptible" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/preemptible" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/preemptible" ><span class="devsite-nav-text" tooltip>About preemptible VMs</span><span class="devsite-nav-icon material-icons" data-icon="unsupported" data-title="No longer supported" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-unsupported"><a href="/compute/docs/instances/create-use-preemptible" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-use-preemptible" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-use-preemptible" ><span class="devsite-nav-text" tooltip>Create and use preemptible VMs</span><span class="devsite-nav-icon material-icons" data-icon="unsupported" data-title="No longer supported" aria-hidden="true"></span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create instances for specific workload types</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-workload-optimized-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-workload-optimized-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-workload-optimized-instance" ><span class="devsite-nav-text" tooltip>Create a Google-configured, workload-optimized instance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-hpc-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-hpc-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-hpc-vm" ><span class="devsite-nav-text" tooltip>Create an HPC-ready instance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/creating-managing-windows-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/creating-managing-windows-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/creating-managing-windows-instances" ><span class="devsite-nav-text" tooltip>Create and manage a Windows Server instance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/creating-sql-server-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/creating-sql-server-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/creating-sql-server-instances" ><span class="devsite-nav-text" tooltip>Create a SQL Server instance</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create custom images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/images/building-custom-os" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/building-custom-os" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/building-custom-os" ><span class="devsite-nav-text" tooltip>Requirements to build custom images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/create-custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/create-custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/create-custom" ><span class="devsite-nav-text" tooltip>Create custom images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/creating-custom-windows-byol-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/creating-custom-windows-byol-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/creating-custom-windows-byol-images" ><span class="devsite-nav-text" tooltip>Create custom Windows BYOL base images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/creating-windows-os-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/creating-windows-os-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/creating-windows-os-image" ><span class="devsite-nav-text" tooltip>Create custom Windows Server images</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create and manage instance templates</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-templates" ><span class="devsite-nav-text" tooltip>About instance templates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-templates/create-instance-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-templates/create-instance-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-templates/create-instance-templates" ><span class="devsite-nav-text" tooltip>Create instance templates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-templates/deterministic-instance-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-templates/deterministic-instance-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-templates/deterministic-instance-templates" ><span class="devsite-nav-text" tooltip>Deterministic instance templates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-templates/get-list-delete-instance-templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-templates/get-list-delete-instance-templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-templates/get-list-delete-instance-templates" ><span class="devsite-nav-text" tooltip>Get, list, and delete instance templates</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create multiple VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create a managed instance group (MIG)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/creating-groups-of-managed-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/creating-groups-of-managed-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/creating-groups-of-managed-instances" ><span class="devsite-nav-text" tooltip>Basic scenarios for creating MIGs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-zonal-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-zonal-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-zonal-mig" ><span class="devsite-nav-text" tooltip>Create a MIG in a single zone</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/distributing-instances-with-regional-instance-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups" ><span class="devsite-nav-text" tooltip>Create a MIG in multiple zones in a region</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-with-multiple-machine-types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-with-multiple-machine-types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-with-multiple-machine-types" ><span class="devsite-nav-text" tooltip>Create a MIG with multiple machine types</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-from-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-from-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-from-vm" ><span class="devsite-nav-text" tooltip>Create a MIG from an existing VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-with-basic-autoscaling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-with-basic-autoscaling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-with-basic-autoscaling" ><span class="devsite-nav-text" tooltip>Create a MIG with autoscaling</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-with-preemptible-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-with-preemptible-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-with-preemptible-vms" ><span class="devsite-nav-text" tooltip>Create a MIG with preemptible VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-with-gpu-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-with-gpu-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-with-gpu-vms" ><span class="devsite-nav-text" tooltip>Create a MIG with GPU VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-mig-with-basic-stateful-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-mig-with-basic-stateful-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-mig-with-basic-stateful-disks" ><span class="devsite-nav-text" tooltip>Create a MIG with stateful configuration</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Bulk creation of VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/multiple/about-bulk-creation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/multiple/about-bulk-creation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/multiple/about-bulk-creation" ><span class="devsite-nav-text" tooltip>About bulk creation of VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/multiple/create-in-bulk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/multiple/create-in-bulk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/multiple/create-in-bulk" ><span class="devsite-nav-text" tooltip>Create VMs in bulk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/create-gpu-vm-bulk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/create-gpu-vm-bulk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/create-gpu-vm-bulk" ><span class="devsite-nav-text" tooltip>Create GPU VMs in bulk</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create sole-tenant VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/nodes/sole-tenant-nodes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/sole-tenant-nodes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/sole-tenant-nodes" ><span class="devsite-nav-text" tooltip>Sole-tenancy overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/provisioning-sole-tenant-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/provisioning-sole-tenant-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/provisioning-sole-tenant-vms" ><span class="devsite-nav-text" tooltip>Provision a sole-tenant VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/sole-tenancy-advanced-maintenance-control" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/sole-tenancy-advanced-maintenance-control" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/sole-tenancy-advanced-maintenance-control" ><span class="devsite-nav-text" tooltip>Advanced maintenance control for sole-tenant nodes</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/sole-tenant-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/sole-tenant-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/sole-tenant-best-practices" ><span class="devsite-nav-text" tooltip>Sole-tenancy best practices</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/sole-tenancy-accounting-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/sole-tenancy-accounting-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/sole-tenancy-accounting-faq" ><span class="devsite-nav-text" tooltip>Sole-tenancy accounting FAQ</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create a virtual workstation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/virtual-workstation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/virtual-workstation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/virtual-workstation" ><span class="devsite-nav-text" tooltip>About creating virtual workstations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/virtual-workstation/linux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/virtual-workstation/linux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/virtual-workstation/linux" ><span class="devsite-nav-text" tooltip>Create a virtual Linux workstation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/virtual-workstation/windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/virtual-workstation/windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/virtual-workstation/windows" ><span class="devsite-nav-text" tooltip>Create a virtual Windows workstation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/virtual-workstation/linux-gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/virtual-workstation/linux-gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/virtual-workstation/linux-gpu" ><span class="devsite-nav-text" tooltip>Create a virtual Linux workstation with an attached GPU</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/virtual-workstation/windows-gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/virtual-workstation/windows-gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/virtual-workstation/windows-gpu" ><span class="devsite-nav-text" tooltip>Create a virtual Windows workstation with an attached GPU</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use nested virtualization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/nested-virtualization/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/nested-virtualization/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/nested-virtualization/overview" ><span class="devsite-nav-text" tooltip>About nested virtualization</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/nested-virtualization/managing-constraint" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/nested-virtualization/managing-constraint" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/nested-virtualization/managing-constraint" ><span class="devsite-nav-text" tooltip>Manage the nested virtualization constraint</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/nested-virtualization/enabling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/nested-virtualization/enabling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/nested-virtualization/enabling" ><span class="devsite-nav-text" tooltip>Enable nested virtualization</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/nested-virtualization/creating-nested-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/nested-virtualization/creating-nested-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/nested-virtualization/creating-nested-vms" ><span class="devsite-nav-text" tooltip>Create nested VMs</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage VM boot disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/detach-reattach-boot-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/detach-reattach-boot-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/detach-reattach-boot-disk" ><span class="devsite-nav-text" tooltip>Detach and reattach a boot disk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/create-root-persistent-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/create-root-persistent-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/create-root-persistent-disks" ><span class="devsite-nav-text" tooltip>Create a customized boot disk</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Migrate VMs</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/import" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import" ><span class="devsite-nav-text" tooltip>Choose a migration path</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/nodes/bringing-your-own-licenses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/bringing-your-own-licenses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/bringing-your-own-licenses" ><span class="devsite-nav-text" tooltip>Bring your own licenses</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Import disks and images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/import/requirements-export-import-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/requirements-export-import-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/requirements-export-import-images" ><span class="devsite-nav-text" tooltip>Prerequisites for importing and exporting VM images</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Automatic import</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/import/importing-virtual-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/importing-virtual-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/importing-virtual-disks" ><span class="devsite-nav-text" tooltip>Import virtual disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/import/import-ovf-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/import-ovf-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/import-ovf-files" ><span class="devsite-nav-text" tooltip>Import virtual appliances</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/import/import-aws-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/import-aws-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/import-aws-image" ><span class="devsite-nav-text" tooltip>Import images from AWS</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manual import</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/import/import-existing-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/import-existing-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/import-existing-image" ><span class="devsite-nav-text" tooltip>Manually import boot disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/import/configuring-imported-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/configuring-imported-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/configuring-imported-images" ><span class="devsite-nav-text" tooltip>Manually configure imported disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/creating-an-image-from-an-iso-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/creating-an-image-from-an-iso-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/creating-an-image-from-an-iso-file" ><span class="devsite-nav-text" tooltip>Create a persistent disk image from an ISO file</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Move a VM within Google Cloud</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/moving-instance-across-zones" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/moving-instance-across-zones" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/moving-instance-across-zones" ><span class="devsite-nav-text" tooltip>Move a VM between zones</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/migrating-interfaces-between-networks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/migrating-interfaces-between-networks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/migrating-interfaces-between-networks" ><span class="devsite-nav-text" tooltip>Migrate a VM between networks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/copy-vm-between-projects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/copy-vm-between-projects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/copy-vm-between-projects" ><span class="devsite-nav-text" tooltip>Copy VMs between projects</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/import/migrate-to-new-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/import/migrate-to-new-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/import/migrate-to-new-vm" ><span class="devsite-nav-text" tooltip>Move an existing VM to a new VM</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Connect to VMs</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Connect to a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/ssh" ><span class="devsite-nav-text" tooltip>About SSH connections</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Linux VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/connect/standard-ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/standard-ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/standard-ssh" ><span class="devsite-nav-text" tooltip>Connect to VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Connect through internal IP addresses</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-internal-ip" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-internal-ip" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-internal-ip" ><span class="devsite-nav-text" tooltip>Connection options for internal-only VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-using-iap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-using-iap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-using-iap" ><span class="devsite-nav-text" tooltip>Connect using IAP</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-using-bastion-host" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-using-bastion-host" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-using-bastion-host" ><span class="devsite-nav-text" tooltip>Connect using a bastion host</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-using-vpn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-using-vpn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-using-vpn" ><span class="devsite-nav-text" tooltip>Connect using Cloud VPN</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/connect/root-ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/root-ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/root-ssh" ><span class="devsite-nav-text" tooltip>Connect as the root user</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/set-up-service-account-ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/set-up-service-account-ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/set-up-service-account-ssh" ><span class="devsite-nav-text" tooltip>Connect using service accounts</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/service-account-ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/service-account-ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/service-account-ssh" ><span class="devsite-nav-text" tooltip>Configure apps to use SSH</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Best practices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/solutions/connecting-securely" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /solutions/connecting-securely" track-type="bookNav" track-name="click" track-metadata-eventdetail="/solutions/connecting-securely" ><span class="devsite-nav-text" tooltip>Securely connect to VMs</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Windows VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/connecting-to-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/connecting-to-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/connecting-to-windows" ><span class="devsite-nav-text" tooltip>Connect to Windows VMs using RDP</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/connecting-to-sac" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/connecting-to-sac" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/connecting-to-sac" ><span class="devsite-nav-text" tooltip>Connect to a Windows VM's SAC</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/connect/windows-ssh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/windows-ssh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/windows-ssh" ><span class="devsite-nav-text" tooltip>Connect to Windows VMs using SSH</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/connecting-powershell" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/connecting-powershell" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/connecting-powershell" ><span class="devsite-nav-text" tooltip>Connect to Windows VMs using PowerShell</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage access to VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Linux VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/access-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/access-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/access-overview" ><span class="devsite-nav-text" tooltip>Choose an access management method</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/oslogin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/oslogin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/oslogin" ><span class="devsite-nav-text" tooltip>About OS Login</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/oslogin/set-up-oslogin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/oslogin/set-up-oslogin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/oslogin/set-up-oslogin" ><span class="devsite-nav-text" tooltip>Set up OS Login</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/oslogin/security-keys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/oslogin/security-keys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/oslogin/security-keys" ><span class="devsite-nav-text" tooltip>Enable security keys with OS Login</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/compute/docs/oslogin/manage-oslogin-in-an-org" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/oslogin/manage-oslogin-in-an-org" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/oslogin/manage-oslogin-in-an-org" ><span class="devsite-nav-text" tooltip>Manage OS Login in an organization</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/oslogin/view-audit-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/oslogin/view-audit-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/oslogin/view-audit-logs" ><span class="devsite-nav-text" tooltip>Monitor OS Login audit logs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/permissions-tutorial" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/permissions-tutorial" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/permissions-tutorial" ><span class="devsite-nav-text" tooltip>Configure granular access within VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Windows VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/generating-credentials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/generating-credentials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/generating-credentials" ><span class="devsite-nav-text" tooltip>Manage accounts and credentials on Windows VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/automate-pw-generation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/automate-pw-generation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/automate-pw-generation" ><span class="devsite-nav-text" tooltip>Automate Windows password generation</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manually manage SSH keys</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/connect/create-ssh-keys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/create-ssh-keys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/create-ssh-keys" ><span class="devsite-nav-text" tooltip>Create SSH keys</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/add-ssh-keys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/add-ssh-keys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/add-ssh-keys" ><span class="devsite-nav-text" tooltip>Add SSH keys to VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/restrict-ssh-keys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/restrict-ssh-keys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/restrict-ssh-keys" ><span class="devsite-nav-text" tooltip>Restrict SSH keys from VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Best practices for securing SSH access</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-best-practices" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-best-practices/network-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-best-practices/network-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-best-practices/network-access" ><span class="devsite-nav-text" tooltip>Control network access</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-best-practices/login-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-best-practices/login-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-best-practices/login-access" ><span class="devsite-nav-text" tooltip>Control SSH login access</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-best-practices/credentials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-best-practices/credentials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-best-practices/credentials" ><span class="devsite-nav-text" tooltip>Protect SSH credentials</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/connect/ssh-best-practices/auditing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/connect/ssh-best-practices/auditing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/connect/ssh-best-practices/auditing" ><span class="devsite-nav-text" tooltip>Audit SSH access</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/tag-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tag-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tag-resources" ><span class="devsite-nav-text" tooltip>Manage tags for resources</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Transfer files to or from a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/transfer-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/transfer-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/transfer-files" ><span class="devsite-nav-text" tooltip>Transfer files to Linux VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/transfer-files-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/transfer-files-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/transfer-files-windows" ><span class="devsite-nav-text" tooltip>Transfer files to Windows VMs</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/ip-addresses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/ip-addresses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/ip-addresses" ><span class="devsite-nav-text" tooltip>IP addresses</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Internal DNS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/internal-dns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/internal-dns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/internal-dns" ><span class="devsite-nav-text" tooltip>Overview of internal DNS</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/using-internal-dns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/using-internal-dns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/using-internal-dns" ><span class="devsite-nav-text" tooltip>Access VMs using internal DNS names</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use zonal DNS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/networking/zonal-dns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/zonal-dns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/zonal-dns" ><span class="devsite-nav-text" tooltip>Overview of zonal DNS</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/use-zonal-dns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/use-zonal-dns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/use-zonal-dns" ><span class="devsite-nav-text" tooltip>Set zonal DNS as the default</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/migrate-to-zonal-dns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/migrate-to-zonal-dns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/migrate-to-zonal-dns" ><span class="devsite-nav-text" tooltip>Migrate to zonal DNS</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/create-ptr-record" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-ptr-record" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-ptr-record" ><span class="devsite-nav-text" tooltip>Create a PTR record for a VM</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/verifying-instance-identity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/verifying-instance-identity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/verifying-instance-identity" ><span class="devsite-nav-text" tooltip>Verify VM identity</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Manage storage</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks" ><span class="devsite-nav-text" tooltip>Choose a disk type</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Disk types</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/hyperdisks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/hyperdisks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/hyperdisks" ><span class="devsite-nav-text" tooltip>About Hyperdisk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/storage-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/storage-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/storage-pools" ><span class="devsite-nav-text" tooltip>About Hyperdisk Storage Pools</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/persistent-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/persistent-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/persistent-disks" ><span class="devsite-nav-text" tooltip>About Persistent Disk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/extreme-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/extreme-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/extreme-persistent-disk" ><span class="devsite-nav-text" tooltip>Extreme Persistent Disk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/local-ssd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/local-ssd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/local-ssd" ><span class="devsite-nav-text" tooltip>About Local SSD</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure storage pools</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/create-storage-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/create-storage-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/create-storage-pools" ><span class="devsite-nav-text" tooltip>Create a storage pool</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/manage-storage-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/manage-storage-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/manage-storage-pools" ><span class="devsite-nav-text" tooltip>Manage storage pools</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add disks to VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/use-storage-pool-capacity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/use-storage-pool-capacity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/use-storage-pool-capacity" ><span class="devsite-nav-text" tooltip>Add disks from a storage pool to VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/add-local-ssd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/add-local-ssd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/add-local-ssd" ><span class="devsite-nav-text" tooltip>Create a VM with Local SSD disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-vm-with-additional-non-boot-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-vm-with-additional-non-boot-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-vm-with-additional-non-boot-disks" ><span class="devsite-nav-text" tooltip>Create a VM with additional non-boot disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/add-hyperdisk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/add-hyperdisk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/add-hyperdisk" ><span class="devsite-nav-text" tooltip>Create a new Hyperdisk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/add-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/add-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/add-persistent-disk" ><span class="devsite-nav-text" tooltip>Create a new Persistent Disk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/sharing-disks-between-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/sharing-disks-between-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/sharing-disks-between-vms" ><span class="devsite-nav-text" tooltip>Share a disk between VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/attach-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/attach-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/attach-disks" ><span class="devsite-nav-text" tooltip>Attach a disk to a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/mount-ram-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/mount-ram-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/mount-ram-disks" ><span class="devsite-nav-text" tooltip>Mount in-memory RAM disks</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Prepare disks for use</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/format-mount-disk-linux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/format-mount-disk-linux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/format-mount-disk-linux" ><span class="devsite-nav-text" tooltip>Format and mount a non-boot disk on Linux</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/format-mount-disk-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/format-mount-disk-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/format-mount-disk-windows" ><span class="devsite-nav-text" tooltip>Format and prepare a non-boot disk on Windows</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Access disks attached to a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/set-persistent-device-name-in-linux-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/set-persistent-device-name-in-linux-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/set-persistent-device-name-in-linux-vm" ><span class="devsite-nav-text" tooltip>Best practice: Use persistent device names</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/disk-symlinks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/disk-symlinks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/disk-symlinks" ><span class="devsite-nav-text" tooltip>Symbolic links to disks</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Transfer data to disks attached to a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/transfer-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/transfer-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/transfer-files" ><span class="devsite-nav-text" tooltip>Transfer files to Linux VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/transfer-files-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/transfer-files-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/transfer-files-windows" ><span class="devsite-nav-text" tooltip>Transfer files to Windows VMs</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Encrypt disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/disk-encryption" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/disk-encryption" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/disk-encryption" ><span class="devsite-nav-text" tooltip>About disk encryption</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/customer-supplied-encryption" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/customer-supplied-encryption" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/customer-supplied-encryption" ><span class="devsite-nav-text" tooltip>Encrypt disks with customer-supplied encryption keys</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/customer-managed-encryption" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/customer-managed-encryption" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/customer-managed-encryption" ><span class="devsite-nav-text" tooltip>Help protect resources by using Cloud KMS keys</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Modify disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/modify-hyperdisks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/modify-hyperdisks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/modify-hyperdisks" ><span class="devsite-nav-text" tooltip>Modify Hyperdisk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/migrate-to-hyperdisk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/migrate-to-hyperdisk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/migrate-to-hyperdisk" ><span class="devsite-nav-text" tooltip>Change the disk type</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/resize-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/resize-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/resize-persistent-disk" ><span class="devsite-nav-text" tooltip>Increase the size of a Persistent Disk</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/modify-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/modify-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/modify-persistent-disk" ><span class="devsite-nav-text" tooltip>Modify a Persistent Disk</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Evaluate disk performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/performance" ><span class="devsite-nav-text" tooltip>Configure disks to meet performance requirements</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Review disk performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/review-storage-pool-metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/review-storage-pool-metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/review-storage-pool-metrics" ><span class="devsite-nav-text" tooltip>Review storage pool metrics</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/review-disk-metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/review-disk-metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/review-disk-metrics" ><span class="devsite-nav-text" tooltip>Review disk performance metrics</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/analyze-iops-hyperdisk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/analyze-iops-hyperdisk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/analyze-iops-hyperdisk" ><span class="devsite-nav-text" tooltip>Analyze provisioned IOPS and throughput</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Benchmark disk performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/benchmark-hyperdisk-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/benchmark-hyperdisk-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/benchmark-hyperdisk-performance" ><span class="devsite-nav-text" tooltip>Benchmark Hyperdisk performance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/benchmarking-pd-performance-linux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/benchmarking-pd-performance-linux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/benchmarking-pd-performance-linux" ><span class="devsite-nav-text" tooltip>Benchmark Persistent Disk performance on a Linux VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/benchmarking-pd-performance-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/benchmarking-pd-performance-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/benchmarking-pd-performance-windows" ><span class="devsite-nav-text" tooltip>Benchmark Persistent Disk performance on a Windows VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/benchmarking-local-ssd-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/benchmarking-local-ssd-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/benchmarking-local-ssd-performance" ><span class="devsite-nav-text" tooltip>Benchmark Local SSD performance</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Make disks highly available</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Persistent Disk Asynchronous Replication</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/about" ><span class="devsite-nav-text" tooltip>About Persistent Disk Asynchronous Replication</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/configure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/configure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/configure" ><span class="devsite-nav-text" tooltip>Configure replication</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/manage-replication" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/manage-replication" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/manage-replication" ><span class="devsite-nav-text" tooltip>Manage replication</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/failover-failback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/failover-failback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/failover-failback" ><span class="devsite-nav-text" tooltip>Failover and failback disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/manage-async-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/manage-async-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/manage-async-disks" ><span class="devsite-nav-text" tooltip>Manage asynchronous disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/manage-consistency-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/manage-consistency-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/manage-consistency-groups" ><span class="devsite-nav-text" tooltip>Manage consistency groups</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/async-pd/performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/async-pd/performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/async-pd/performance" ><span class="devsite-nav-text" tooltip>Review performance metrics</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Cross-zonal synchronous disk replication</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/about-regional-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/about-regional-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/about-regional-persistent-disk" ><span class="devsite-nav-text" tooltip>About regional disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/high-availability-regional-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/high-availability-regional-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/high-availability-regional-persistent-disk" ><span class="devsite-nav-text" tooltip>Build high availability services using regional disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/design-considerations-for-resilient-workloads-with-regional-persistent-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/design-considerations-for-resilient-workloads-with-regional-persistent-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/design-considerations-for-resilient-workloads-with-regional-persistent-disks" ><span class="devsite-nav-text" tooltip>Design considerations for resilient workloads with regional disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/regional-persistent-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/regional-persistent-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/regional-persistent-disk" ><span class="devsite-nav-text" tooltip>Create and manage regional disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/repd-failover" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/repd-failover" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/repd-failover" ><span class="devsite-nav-text" tooltip>Manage failures for regional disks</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Back up and restore</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/disks/data-protection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/data-protection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/data-protection" ><span class="devsite-nav-text" tooltip>Data protection options</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Back up VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use machine images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/machine-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/machine-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/machine-images" ><span class="devsite-nav-text" tooltip>About machine images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/machine-images/create-machine-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/machine-images/create-machine-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/machine-images/create-machine-images" ><span class="devsite-nav-text" tooltip>Create machine images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/machine-images/import-machine-from-virtual-appliance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/machine-images/import-machine-from-virtual-appliance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/machine-images/import-machine-from-virtual-appliance" ><span class="devsite-nav-text" tooltip>Import machine images from virtual appliances</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-instance-with-gcbdr-backup-plan" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-instance-with-gcbdr-backup-plan" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-instance-with-gcbdr-backup-plan" ><span class="devsite-nav-text" tooltip>Use back up plans</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Back up disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Back up a disk in place</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/instant-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/instant-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/instant-snapshots" ><span class="devsite-nav-text" tooltip>About instant snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/create-instant-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/create-instant-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/create-instant-snapshots" ><span class="devsite-nav-text" tooltip>Create and manage instant snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/convert-instant-snapshot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/convert-instant-snapshot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/convert-instant-snapshot" ><span class="devsite-nav-text" tooltip>Copy an instant snapshot to a different location</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Back up a disk for disaster recovery</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/snapshots" ><span class="devsite-nav-text" tooltip>About disk snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/snapshot-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/snapshot-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/snapshot-best-practices" ><span class="devsite-nav-text" tooltip>Best practices for disk snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/snapshot-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/snapshot-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/snapshot-settings" ><span class="devsite-nav-text" tooltip>Set default storage location using snapshot settings</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/create-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/create-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/create-snapshots" ><span class="devsite-nav-text" tooltip>Create disk snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/manage-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/manage-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/manage-snapshots" ><span class="devsite-nav-text" tooltip>Manage disk snapshots</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create application consistent snapshots</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/creating-linux-application-consistent-pd-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/creating-linux-application-consistent-pd-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/creating-linux-application-consistent-pd-snapshots" ><span class="devsite-nav-text" tooltip>Create Linux application consistent snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/creating-windows-persistent-disk-snapshot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/creating-windows-persistent-disk-snapshot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/creating-windows-persistent-disk-snapshot" ><span class="devsite-nav-text" tooltip>Create a Windows disk snapshot (VSS snapshots)</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Schedule disk backups</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/about-snapshot-schedules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/about-snapshot-schedules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/about-snapshot-schedules" ><span class="devsite-nav-text" tooltip>About snapshot schedules</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/scheduled-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/scheduled-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/scheduled-snapshots" ><span class="devsite-nav-text" tooltip>Create snapshot schedules</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/manage-snapshot-schedules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/manage-snapshot-schedules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/manage-snapshot-schedules" ><span class="devsite-nav-text" tooltip>Manage snapshot schedules</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/create-alert-snapshot-schedule" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/create-alert-snapshot-schedule" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/create-alert-snapshot-schedule" ><span class="devsite-nav-text" tooltip>Configure alerts for snapshot schedules</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/disks/clone-duplicate-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/clone-duplicate-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/clone-duplicate-disks" ><span class="devsite-nav-text" tooltip>Duplicate a disk with clones</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Restore from a backup</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/machine-images/create-instance-from-machine-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/machine-images/create-instance-from-machine-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/machine-images/create-instance-from-machine-image" ><span class="devsite-nav-text" tooltip>Create VMs from machine images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/restore-snapshot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/restore-snapshot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/restore-snapshot" ><span class="devsite-nav-text" tooltip>Restore from a standard snapshot</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/restore-instant-snapshot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/restore-instant-snapshot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/restore-instant-snapshot" ><span class="devsite-nav-text" tooltip>Restore from an instant snapshot</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/disks/recover-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/recover-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/recover-vm" ><span class="devsite-nav-text" tooltip>Recover a VM with a corrupted or full disk</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Manage VMs</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Basic operations and lifecycle</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/instance-lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/instance-lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/instance-lifecycle" ><span class="devsite-nav-text" tooltip>VM instance lifecycle</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Schedule VM operations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/schedule-instance-start-stop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/schedule-instance-start-stop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/schedule-instance-start-stop" ><span class="devsite-nav-text" tooltip>Schedule a VM to start and stop</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/limit-vm-runtime" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/limit-vm-runtime" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/limit-vm-runtime" ><span class="devsite-nav-text" tooltip>Limit the run time of a VM</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>View VM properties</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/detect-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/detect-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/detect-compute-engine" ><span class="devsite-nav-text" tooltip>Detect if a VM is running in Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/get-list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/get-list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/get-list" ><span class="devsite-nav-text" tooltip>Get a list of VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-vm-details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-vm-details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-vm-details" ><span class="devsite-nav-text" tooltip>Get the details of a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/get-uuid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/get-uuid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/get-uuid" ><span class="devsite-nav-text" tooltip>Get the UUID of a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-vm-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-vm-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-vm-image" ><span class="devsite-nav-text" tooltip>View the source image of a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-references-between-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-references-between-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-references-between-resources" ><span class="devsite-nav-text" tooltip>View referrers to VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-network-properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-network-properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-network-properties" ><span class="devsite-nav-text" tooltip>View network configuration of an instance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-visible-cores" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-visible-cores" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-visible-cores" ><span class="devsite-nav-text" tooltip>View the number of visible CPU cores</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Stop or suspend a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/suspend-stop-reset-instances-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/suspend-stop-reset-instances-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/suspend-stop-reset-instances-overview" ><span class="devsite-nav-text" tooltip>Stop or suspend VMs overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/stop-start-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/stop-start-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/stop-start-instance" ><span class="devsite-nav-text" tooltip>Stop or restart a VM</span></a></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Gracefully shut down a VM</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/graceful-shutdown-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/graceful-shutdown-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/graceful-shutdown-overview" ><span class="devsite-nav-text" tooltip>Graceful shutdown overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/enable-graceful-shutdown" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/enable-graceful-shutdown" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/enable-graceful-shutdown" ><span class="devsite-nav-text" tooltip>Enable graceful shutdown</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-graceful-shutdown" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-graceful-shutdown" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-graceful-shutdown" ><span class="devsite-nav-text" tooltip>View graceful shutdown</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/disable-graceful-shutdown" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/disable-graceful-shutdown" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/disable-graceful-shutdown" ><span class="devsite-nav-text" tooltip>Disable graceful shutdown</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/suspend-resume-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/suspend-resume-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/suspend-resume-instance" ><span class="devsite-nav-text" tooltip>Suspend or resume a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reset-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reset-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reset-instance" ><span class="devsite-nav-text" tooltip>Reset a VM</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Update VM details</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/rename-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/rename-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/rename-instance" ><span class="devsite-nav-text" tooltip>Rename a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/update-instance-properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/update-instance-properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/update-instance-properties" ><span class="devsite-nav-text" tooltip>Update VM properties</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/changing-machine-type-of-stopped-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/changing-machine-type-of-stopped-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/changing-machine-type-of-stopped-instance" ><span class="devsite-nav-text" tooltip>Edit the machine type of a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/add-remove-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/add-remove-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/add-remove-gpus" ><span class="devsite-nav-text" tooltip>Add or remove GPUs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/change-service-account" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/change-service-account" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/change-service-account" ><span class="devsite-nav-text" tooltip>Change the attached service account</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Update the physical location of a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/placement-policies-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/placement-policies-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/placement-policies-overview" ><span class="devsite-nav-text" tooltip>About placement policies</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/use-spread-placement-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/use-spread-placement-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/use-spread-placement-policies" ><span class="devsite-nav-text" tooltip>Create and apply spread placement policies to VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-placement-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-placement-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-placement-policies" ><span class="devsite-nav-text" tooltip>View placement policies</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/manage-placement-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/manage-placement-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/manage-placement-policies" ><span class="devsite-nav-text" tooltip>Remove or delete placement policies</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure IP addresses</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/ip-addresses/configure-static-external-ip-address" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/ip-addresses/configure-static-external-ip-address" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/ip-addresses/configure-static-external-ip-address" ><span class="devsite-nav-text" tooltip>Configure static external IP addresses</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/ip-addresses/configure-static-internal-ip-address" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/ip-addresses/configure-static-internal-ip-address" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/ip-addresses/configure-static-internal-ip-address" ><span class="devsite-nav-text" tooltip>Configure static internal IP addresses</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/ip-addresses/configure-ipv6-address" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/ip-addresses/configure-ipv6-address" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/ip-addresses/configure-ipv6-address" ><span class="devsite-nav-text" tooltip>Configure IPv6 for instances and instance templates</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Delete VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/deleting-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/deleting-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/deleting-instance" ><span class="devsite-nav-text" tooltip>Delete a VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/preventing-accidental-vm-deletion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/preventing-accidental-vm-deletion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/preventing-accidental-vm-deletion" ><span class="devsite-nav-text" tooltip>Prevent accidental VM deletion</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/nodes/updating-vm-tenancy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/updating-vm-tenancy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/updating-vm-tenancy" ><span class="devsite-nav-text" tooltip>Update VM tenancy</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage groups of VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/working-with-managed-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/working-with-managed-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/working-with-managed-instances" ><span class="devsite-nav-text" tooltip>Work with managed VMs in a MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/getting-info-about-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/getting-info-about-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/getting-info-about-migs" ><span class="devsite-nav-text" tooltip>View info about MIGs and managed instances</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/add-remove-vms-in-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/add-remove-vms-in-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/add-remove-vms-in-mig" ><span class="devsite-nav-text" tooltip>Add or remove VMs in a MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/limit-vm-runtime-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/limit-vm-runtime-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/limit-vm-runtime-in-migs" ><span class="devsite-nav-text" tooltip>Limit the run time of VMs in a MIG</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add GPU VMs all at once in a MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/about-resize-requests-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/about-resize-requests-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/about-resize-requests-mig" ><span class="devsite-nav-text" tooltip>About resize requests</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/create-resize-requests-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/create-resize-requests-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/create-resize-requests-mig" ><span class="devsite-nav-text" tooltip>Create resize requests</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/manage-resize-requests-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/manage-resize-requests-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/manage-resize-requests-mig" ><span class="devsite-nav-text" tooltip>View, cancel, or delete resize requests</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure instance flexibility in a MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/about-instance-flexibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/about-instance-flexibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/about-instance-flexibility" ><span class="devsite-nav-text" tooltip>About instance flexibility</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/configure-instance-flexibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/configure-instance-flexibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/configure-instance-flexibility" ><span class="devsite-nav-text" tooltip>Add instance flexibility</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/view-instance-flexibility-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/view-instance-flexibility-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/view-instance-flexibility-configuration" ><span class="devsite-nav-text" tooltip>View instance flexibility</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/change-or-remove-instance-flexibility-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/change-or-remove-instance-flexibility-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/change-or-remove-instance-flexibility-configuration" ><span class="devsite-nav-text" tooltip>Change or remove instance flexibility</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Distribute VMs across zones in a regional MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-migs" ><span class="devsite-nav-text" tooltip>About regional MIGs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-mig-distribution-shape" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-mig-distribution-shape" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-mig-distribution-shape" ><span class="devsite-nav-text" tooltip>About target distribution shape</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-mig-set-target-distribution-shape" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-mig-set-target-distribution-shape" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-mig-set-target-distribution-shape" ><span class="devsite-nav-text" tooltip>Set a target distribution for VMs across zones</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-mig-enable-disable-proactive-redistribution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-mig-enable-disable-proactive-redistribution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-mig-enable-disable-proactive-redistribution" ><span class="devsite-nav-text" tooltip>Disable and reenable proactive instance redistribution</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-mig-rebalance-manually" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-mig-rebalance-manually" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-mig-rebalance-manually" ><span class="devsite-nav-text" tooltip>Manually rebalance a regional MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/regional-mig-simulate-zonal-outage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/regional-mig-simulate-zonal-outage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/regional-mig-simulate-zonal-outage" ><span class="devsite-nav-text" tooltip>Simulate a zone outage for a regional MIG</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with suspended and stopped VMs in a MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/suspended-and-stopped-vms-in-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/manually-suspend-or-stop-vms-in-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/manually-suspend-or-stop-vms-in-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/manually-suspend-or-stop-vms-in-mig" ><span class="devsite-nav-text" tooltip>Manually suspend or stop VMs in a MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/accelerate-mig-scale-out-with-standby-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/accelerate-mig-scale-out-with-standby-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/accelerate-mig-scale-out-with-standby-pools" ><span class="devsite-nav-text" tooltip>Accelerate scale out with suspended and stopped VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Apply new VM configurations in a MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/updating-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/updating-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/updating-migs" ><span class="devsite-nav-text" tooltip>About applying new VM configurations to VMs in a MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups" ><span class="devsite-nav-text" tooltip>Automatically apply VM configuration updates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/updating-selected-instances-in-a-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/updating-selected-instances-in-a-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/updating-selected-instances-in-a-mig" ><span class="devsite-nav-text" tooltip>Selectively apply VM configuration updates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/update-on-repair" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/update-on-repair" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/update-on-repair" ><span class="devsite-nav-text" tooltip>Apply configuration updates during repairs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/set-mig-aic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/set-mig-aic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/set-mig-aic" ><span class="devsite-nav-text" tooltip>Override instance template properties with an all-instances configuration</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/upgrading-images-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/upgrading-images-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/upgrading-images-in-migs" ><span class="devsite-nav-text" tooltip>Perform one-click OS image upgrades</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Maintain high availability during VM failures</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/about-repair" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/about-repair" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/about-repair" ><span class="devsite-nav-text" tooltip>About repairing VMs for high availability</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Repair a VM when an application fails</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/autohealing-instances-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/autohealing-instances-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/autohealing-instances-in-migs" ><span class="devsite-nav-text" tooltip>Set up an application-based health check and autohealing</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/monitoring-managed-instance-health-state-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/monitoring-managed-instance-health-state-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/monitoring-managed-instance-health-state-changes" ><span class="devsite-nav-text" tooltip>Monitor VM health state changes</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/disabling-and-enabling-health-state-change-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/disabling-and-enabling-health-state-change-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/disabling-and-enabling-health-state-change-logs" ><span class="devsite-nav-text" tooltip>Disable and enable health state change logs</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/turn-off-vm-repairs-in-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/turn-off-vm-repairs-in-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/turn-off-vm-repairs-in-mig" ><span class="devsite-nav-text" tooltip>Turn off repairs in a MIG</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Support a stateful workload with a MIG</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/stateful-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/stateful-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/stateful-migs" ><span class="devsite-nav-text" tooltip>About stateful MIGs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure stateful MIGs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/configuring-stateful-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/configuring-stateful-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/configuring-stateful-migs" ><span class="devsite-nav-text" tooltip>Configure a stateful MIG</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/configuring-stateful-disks-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/configuring-stateful-disks-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/configuring-stateful-disks-in-migs" ><span class="devsite-nav-text" tooltip>Configure stateful persistent disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/configuring-stateful-metadata-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/configuring-stateful-metadata-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/configuring-stateful-metadata-in-migs" ><span class="devsite-nav-text" tooltip>Configure stateful metadata</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/configuring-stateful-ip-addresses-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/configuring-stateful-ip-addresses-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/configuring-stateful-ip-addresses-in-migs" ><span class="devsite-nav-text" tooltip>Configure stateful IP addresses</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/applying-viewing-removing-stateful-config-in-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/applying-viewing-removing-stateful-config-in-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/applying-viewing-removing-stateful-config-in-migs" ><span class="devsite-nav-text" tooltip>Apply, view, and remove stateful configuration</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/how-stateful-migs-work" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/how-stateful-migs-work" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/how-stateful-migs-work" ><span class="devsite-nav-text" tooltip>How stateful MIGs work</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/preserved-state" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/preserved-state" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/preserved-state" ><span class="devsite-nav-text" tooltip>How operations affect preserved state</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Group VMs together</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/migrate-workload-to-stateful-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/migrate-workload-to-stateful-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/migrate-workload-to-stateful-mig" ><span class="devsite-nav-text" tooltip>Migrate an existing workload to a stateful managed instance group</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/creating-groups-of-unmanaged-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/creating-groups-of-unmanaged-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/creating-groups-of-unmanaged-instances" ><span class="devsite-nav-text" tooltip>Group unmanaged VMs together</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/delete-mig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/delete-mig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/delete-mig" ><span class="devsite-nav-text" tooltip>Delete a MIG</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Host maintenance events</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/host-maintenance-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/host-maintenance-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/host-maintenance-overview" ><span class="devsite-nav-text" tooltip>About host events</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/live-migration-process" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/live-migration-process" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/live-migration-process" ><span class="devsite-nav-text" tooltip>Live migration process</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/setting-vm-host-options" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/setting-vm-host-options" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/setting-vm-host-options" ><span class="devsite-nav-text" tooltip>Set the host maintenance policy</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/metadata/getting-live-migration-notice" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/getting-live-migration-notice" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/getting-live-migration-notice" ><span class="devsite-nav-text" tooltip>Query metadata server for notices</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/simulating-host-maintenance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/simulating-host-maintenance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/simulating-host-maintenance" ><span class="devsite-nav-text" tooltip>Simulate a host maintenance event</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/gpu-host-maintenance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/gpu-host-maintenance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/gpu-host-maintenance" ><span class="devsite-nav-text" tooltip>Handle GPU host maintenance events</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/monitor-plan-host-maintenance-event" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/monitor-plan-host-maintenance-event" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/monitor-plan-host-maintenance-event" ><span class="devsite-nav-text" tooltip>Monitor and plan for a host maintenance event</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/trigger-host-maintenance-event" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/trigger-host-maintenance-event" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/trigger-host-maintenance-event" ><span class="devsite-nav-text" tooltip>Manually start host maintenance</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage metadata</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/metadata/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/overview" ><span class="devsite-nav-text" tooltip>About VM metadata</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/metadata/predefined-metadata-keys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/predefined-metadata-keys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/predefined-metadata-keys" ><span class="devsite-nav-text" tooltip>Predefined metadata keys</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/metadata/setting-custom-metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/setting-custom-metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/setting-custom-metadata" ><span class="devsite-nav-text" tooltip>Set and remove custom metadata</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/metadata/querying-metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/querying-metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/querying-metadata" ><span class="devsite-nav-text" tooltip>View and query VM metadata</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/metadata/manage-guest-attributes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/metadata/manage-guest-attributes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/metadata/manage-guest-attributes" ><span class="devsite-nav-text" tooltip>Set and query guest attributes</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Securing VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/about-shielded-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/about-shielded-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/about-shielded-vm" ><span class="devsite-nav-text" tooltip>About Shielded VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/about-confidential-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/about-confidential-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/about-confidential-vm" ><span class="devsite-nav-text" tooltip>About Confidential VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/protecting-resources-vpc-service-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/protecting-resources-vpc-service-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/protecting-resources-vpc-service-controls" ><span class="devsite-nav-text" tooltip>Protect resources with VPC Service Controls</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Manage operating systems</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Guest environment</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/images/guest-environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/guest-environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/guest-environment" ><span class="devsite-nav-text" tooltip>About the guest environment</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/install-guest-environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/install-guest-environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/install-guest-environment" ><span class="devsite-nav-text" tooltip>Install the guest environment</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/vm-manager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/vm-manager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/vm-manager" ><span class="devsite-nav-text" tooltip>Manage operating systems using VM Manager</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage OS images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/images/image-management-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/image-management-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/image-management-best-practices" ><span class="devsite-nav-text" tooltip>Image management best practices</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/image-families-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/image-families-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/image-families-best-practices" ><span class="devsite-nav-text" tooltip>Image families best practices</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/premium/access-rhel-knowledgebase" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/access-rhel-knowledgebase" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/access-rhel-knowledgebase" ><span class="devsite-nav-text" tooltip>Access Red Hat Knowledgebase</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/managing-access-custom-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/managing-access-custom-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/managing-access-custom-images" ><span class="devsite-nav-text" tooltip>Manage access to custom images</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/restricting-image-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/restricting-image-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/restricting-image-access" ><span class="devsite-nav-text" tooltip>Set up trusted image policies</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/export-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/export-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/export-image" ><span class="devsite-nav-text" tooltip>Export a custom image to Cloud Storage</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/set-version-custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/set-version-custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/set-version-custom" ><span class="devsite-nav-text" tooltip>Set image versions in an image family</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/deprecate-custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/deprecate-custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/deprecate-custom" ><span class="devsite-nav-text" tooltip>Deprecate a custom image</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/images/delete-custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/delete-custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/delete-custom" ><span class="devsite-nav-text" tooltip>Delete a custom image</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/artifact-registry-os-packages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/artifact-registry-os-packages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/artifact-registry-os-packages" ><span class="devsite-nav-text" tooltip>Manage OS packages</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage licenses</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/licenses/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/licenses/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/licenses/about" ><span class="devsite-nav-text" tooltip>About licenses</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/licenses/view-append" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/licenses/view-append" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/licenses/view-append" ><span class="devsite-nav-text" tooltip>View and append licenses</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/images/premium/rhel/appending-els-licenses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/rhel/appending-els-licenses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/rhel/appending-els-licenses" ><span class="devsite-nav-text" tooltip>Append RHEL ELS licenses</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/images/premium/ubuntu-pro/upgrade-from-ubuntu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/images/premium/ubuntu-pro/upgrade-from-ubuntu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/images/premium/ubuntu-pro/upgrade-from-ubuntu" ><span class="devsite-nav-text" tooltip>Upgrade from Ubuntu to Ubuntu Pro</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use startup scripts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/startup-scripts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/startup-scripts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/startup-scripts" ><span class="devsite-nav-text" tooltip>Startup scripts overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/startup-scripts/linux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/startup-scripts/linux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/startup-scripts/linux" ><span class="devsite-nav-text" tooltip>Use startup scripts on Linux VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/startup-scripts/windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/startup-scripts/windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/startup-scripts/windows" ><span class="devsite-nav-text" tooltip>Use startup scripts on Windows VMs</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/shutdownscript" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/shutdownscript" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/shutdownscript" ><span class="devsite-nav-text" tooltip>Run shutdown scripts</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/configure-ntp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/configure-ntp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/configure-ntp" ><span class="devsite-nav-text" tooltip>Configure NTP</span></a></li> <li class="devsite-nav-item"><a href="/compute/docs/instances/enabling-virtio-rng" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/enabling-virtio-rng" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/enabling-virtio-rng" ><span class="devsite-nav-text" tooltip>Enable the virtual random number generator (Virtio RNG)</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Deploy workloads</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up authentication for workloads</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/access/app-authentication-methods" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/app-authentication-methods" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/app-authentication-methods" ><span class="devsite-nav-text" tooltip>Choose a workload authentication method</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/access/authenticate-workloads" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/authenticate-workloads" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/authenticate-workloads" ><span class="devsite-nav-text" tooltip>Authenticate workloads to Google Cloud API using service accounts</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/access/authenticate-workloads-over-mtls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/access/authenticate-workloads-over-mtls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/access/authenticate-workloads-over-mtls" ><span class="devsite-nav-text" tooltip>Authenticate workloads to other workloads over mTLS</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Web servers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/basic-webserver-apache" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/basic-webserver-apache" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/basic-webserver-apache" ><span class="devsite-nav-text" tooltip>Deploy an Apache server</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/basic-webserver-iis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/basic-webserver-iis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/basic-webserver-iis" ><span class="devsite-nav-text" tooltip>Deploy an IIS server</span></a></li><li class="devsite-nav-item"><a href="/docs/terraform/get-started-with-terraform" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/terraform/get-started-with-terraform" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/terraform/get-started-with-terraform" ><span class="devsite-nav-text" tooltip>Deploy a Flask server by using Terraform</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Applications</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="https://console.cloud.google.com/getting-started?walkthrough_tutorial_id=compute_quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://console.cloud.google.com/getting-started?walkthrough_tutorial_id=compute_quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://console.cloud.google.com/getting-started?walkthrough_tutorial_id=compute_quickstart" ><span class="devsite-nav-text" tooltip>Interactive: Build a to-do app with MongoDB</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/deploy-aspnet-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/deploy-aspnet-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/deploy-aspnet-app" ><span class="devsite-nav-text" tooltip>Deploy an ASP.NET application</span></a></li><li class="devsite-nav-item"><a href="/community/tutorials/joomla-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/joomla-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/joomla-on-compute-engine" ><span class="devsite-nav-text" tooltip>Set up Joomla</span></a></li><li class="devsite-nav-item"><a href="/community/tutorials/setting-up-lamp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/setting-up-lamp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/setting-up-lamp" ><span class="devsite-nav-text" tooltip>Set up LAMP</span></a></li><li class="devsite-nav-item"><a href="/build/docs/deploying-builds/deploy-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /build/docs/deploying-builds/deploy-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/build/docs/deploying-builds/deploy-compute-engine" ><span class="devsite-nav-text" tooltip>Perform blue/green deployments using Cloud Build</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Send email from a VM</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/sending-mail" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/sending-mail" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/sending-mail" ><span class="devsite-nav-text" tooltip>About sending email</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/sending-mail/using-sendgrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/sending-mail/using-sendgrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/sending-mail/using-sendgrid" ><span class="devsite-nav-text" tooltip>Send email with SendGrid</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/sending-mail/using-mailgun" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/sending-mail/using-mailgun" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/sending-mail/using-mailgun" ><span class="devsite-nav-text" tooltip>Send email with Mailgun</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/sending-mail/using-mailjet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/sending-mail/using-mailjet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/sending-mail/using-mailjet" ><span class="devsite-nav-text" tooltip>Send email with Mailjet</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Databases</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>MySQL</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/setup-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/setup-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/setup-mysql" ><span class="devsite-nav-text" tooltip>Set up MySQL on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/mysql-remote-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/mysql-remote-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/mysql-remote-access" ><span class="devsite-nav-text" tooltip>Set up client access with a private IP address</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/cloning-a-mysql-database-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/cloning-a-mysql-database-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/cloning-a-mysql-database-on-compute-engine" ><span class="devsite-nav-text" tooltip>Cloning a MySQL database on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/deploying-highly-available-mysql-cluster-with-drbd-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/deploying-highly-available-mysql-cluster-with-drbd-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/deploying-highly-available-mysql-cluster-with-drbd-on-compute-engine" ><span class="devsite-nav-text" tooltip>Deploying a highly available MySQL 5.6 cluster with DRBD on Compute Engine</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>PostgreSQL</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/community/tutorials/setting-up-postgres" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/setting-up-postgres" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/setting-up-postgres" ><span class="devsite-nav-text" tooltip>Set up PostgreSQL on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/community/tutorials/setting-up-postgres-data-disk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/setting-up-postgres-data-disk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/setting-up-postgres-data-disk" ><span class="devsite-nav-text" tooltip>Set up a PostgreSQL data disk</span></a></li><li class="devsite-nav-item"><a href="/community/tutorials/setting-up-postgres-hot-standby" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/setting-up-postgres-hot-standby" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/setting-up-postgres-hot-standby" ><span class="devsite-nav-text" tooltip>Set up PostgreSQL with hot standby</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SQL Server</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/best-practices" ><span class="devsite-nav-text" tooltip>Best practices for SQL Server VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/creating-high-performance-sql-server-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/creating-high-performance-sql-server-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/creating-high-performance-sql-server-instance" ><span class="devsite-nav-text" tooltip>Create a high-performance SQL Server VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/adding-sql-server-license-to-linux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/adding-sql-server-license-to-linux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/adding-sql-server-license-to-linux" ><span class="devsite-nav-text" tooltip>Add a SQL Server license to an existing Linux server</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/adding-sql-server-license" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/adding-sql-server-license" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/adding-sql-server-license" ><span class="devsite-nav-text" tooltip>Add a SQL Server license to an existing Windows server</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/creating-sql-server-instance-using-netapp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/creating-sql-server-instance-using-netapp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/creating-sql-server-instance-using-netapp" ><span class="devsite-nav-text" tooltip>Configure SQL Server on Google Cloud Platform using Cloud Volumes Service</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/configure-availability" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/configure-availability" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/configure-availability" ><span class="devsite-nav-text" tooltip>Set up AlwaysOn availability groups using an internal load balancer</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/configure-availability-dnn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/configure-availability-dnn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/configure-availability-dnn" ><span class="devsite-nav-text" tooltip>Set up AlwaysOn availability groups using a distributed network name</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/configure-failover-cluster-instance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/configure-failover-cluster-instance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/configure-failover-cluster-instance" ><span class="devsite-nav-text" tooltip>Set up a failover cluster VM that uses S2D</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/configure-failover-cluster-instance-pd-multi-writer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/configure-failover-cluster-instance-pd-multi-writer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/configure-failover-cluster-instance-pd-multi-writer" ><span class="devsite-nav-text" tooltip>Set up a failover cluster VM with multi-writer persistent disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/high-availability-linux-pacemaker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/high-availability-linux-pacemaker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/high-availability-linux-pacemaker" ><span class="devsite-nav-text" tooltip>Set up a SQL Server cluster on Linux with Alaways On availability groups and Pacemaker</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/cloning-a-microsoft-sql-server-database-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/cloning-a-microsoft-sql-server-database-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/cloning-a-microsoft-sql-server-database-on-compute-engine" ><span class="devsite-nav-text" tooltip>Cloning a Microsoft SQL Server database on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/load-testing-sql-server-hammerdb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/load-testing-sql-server-hammerdb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/load-testing-sql-server-hammerdb" ><span class="devsite-nav-text" tooltip>Load test SQL Server using HammerDB</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/disaster-recovery-for-microsoft-sql-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/disaster-recovery-for-microsoft-sql-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/disaster-recovery-for-microsoft-sql-server" ><span class="devsite-nav-text" tooltip>Disaster recovery for Microsoft SQL Server</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/dr-for-microsoft-sql-server-with-async-pd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/dr-for-microsoft-sql-server-with-async-pd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/dr-for-microsoft-sql-server-with-async-pd" ><span class="devsite-nav-text" tooltip>Disaster recovery for Microsoft SQL Server with Async PD</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/sql-server/deploying-microsoft-sql-server-multi-regional-disaster-recovery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/sql-server/deploying-microsoft-sql-server-multi-regional-disaster-recovery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/sql-server/deploying-microsoft-sql-server-multi-regional-disaster-recovery" ><span class="devsite-nav-text" tooltip>Deploying Microsoft SQL Server for multi-regional disaster recovery</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Redis</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/redis/deployment-options" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/redis/deployment-options" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/redis/deployment-options" ><span class="devsite-nav-text" tooltip>Deployment Options for Redis on Google Cloud </span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Containers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/containers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/containers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/containers" ><span class="devsite-nav-text" tooltip>Containers on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/containers/deploying-containers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/containers/deploying-containers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/containers/deploying-containers" ><span class="devsite-nav-text" tooltip>Deploy containers on VMs and managed instance groups</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/containers/configuring-options-to-run-containers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/containers/configuring-options-to-run-containers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/containers/configuring-options-to-run-containers" ><span class="devsite-nav-text" tooltip>Configure options to run your container</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>OpenShift workloads</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/containers/openshift-ha" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/containers/openshift-ha" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/containers/openshift-ha" ><span class="devsite-nav-text" tooltip>Best practices for high availability with OpenShift</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Microsoft Windows</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows" ><span class="devsite-nav-text" tooltip>Windows workloads</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/windows-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/windows-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/windows-best-practices" ><span class="devsite-nav-text" tooltip>Best practices for Windows Server VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/setup-active-directory" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/setup-active-directory" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/setup-active-directory" ><span class="devsite-nav-text" tooltip>Setting up Active Directory</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/best-practices" ><span class="devsite-nav-text" tooltip>Best practices for running Active Directory on Google Cloud</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/deploying-microsoft-sharepoint-server-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/deploying-microsoft-sharepoint-server-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/deploying-microsoft-sharepoint-server-on-compute-engine" ><span class="devsite-nav-text" tooltip>Deploy Microsoft SharePoint Server on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/windows/deploying-microsoft-exchange-server-2016-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/windows/deploying-microsoft-exchange-server-2016-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/windows/deploying-microsoft-exchange-server-2016-on-compute-engine" ><span class="devsite-nav-text" tooltip>Deploying Microsoft Exchange Server 2016 on Compute Engine</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Windows Server</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/performing-in-place-upgrade-windows-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/performing-in-place-upgrade-windows-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/performing-in-place-upgrade-windows-server" ><span class="devsite-nav-text" tooltip>Perform an in-place upgrade of Windows Server</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/compute/docs/tutorials/performing-an-automated-in-place-upgrade-windows-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/performing-an-automated-in-place-upgrade-windows-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/performing-an-automated-in-place-upgrade-windows-server" ><span class="devsite-nav-text" tooltip>Perform an automated in-place upgrade of Windows Server</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/running-windows-server-failover-clustering" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/running-windows-server-failover-clustering" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/running-windows-server-failover-clustering" ><span class="devsite-nav-text" tooltip>Run Windows Server failover clustering</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Others</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Load testing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/architecture/distributed-load-testing-using-gke" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/distributed-load-testing-using-gke" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/distributed-load-testing-using-gke" ><span class="devsite-nav-text" tooltip>Distributed load testing using Kubernetes</span></a></li><li class="devsite-nav-item"><a href="/community/tutorials/ssh-port-forwarding-set-up-load-testing-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /community/tutorials/ssh-port-forwarding-set-up-load-testing-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/community/tutorials/ssh-port-forwarding-set-up-load-testing-on-compute-engine" ><span class="devsite-nav-text" tooltip>SSH port forwarding and load testing</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Analytics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/architecture/monte-carlo-methods-with-hadoop-spark" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/monte-carlo-methods-with-hadoop-spark" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/monte-carlo-methods-with-hadoop-spark" ><span class="devsite-nav-text" tooltip>Monte Carlo methods using Apache Spark</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Machine learning</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/ml-inference-t4" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/ml-inference-t4" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/ml-inference-t4" ><span class="devsite-nav-text" tooltip>Run TensorFlow inference workloads with TensorRT5 and NVIDIA T4 GPU</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Monitor</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor logs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/logging/audit-logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/logging/audit-logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/logging/audit-logging" ><span class="devsite-nav-text" tooltip>View audit logs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/logging/usage-export" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/logging/usage-export" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/logging/usage-export" ><span class="devsite-nav-text" tooltip>View usage reports</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/viewing-compute-operations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/viewing-compute-operations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/viewing-compute-operations" ><span class="devsite-nav-text" tooltip>View Compute Engine operations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/logging/migrating-from-activity-logs-to-audit-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/logging/migrating-from-activity-logs-to-audit-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/logging/migrating-from-activity-logs-to-audit-logs" ><span class="devsite-nav-text" tooltip>Migrate from activity logs to audit logs</span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/compute/docs/logging/activity-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/logging/activity-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/logging/activity-logs" ><span class="devsite-nav-text" tooltip>View activity logs</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor resources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/nodes/determining-server-usage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/determining-server-usage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/determining-server-usage" ><span class="devsite-nav-text" tooltip>Monitor VM and sole-tenant node usage</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/observe-monitor-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/observe-monitor-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/observe-monitor-vms" ><span class="devsite-nav-text" tooltip>Observe and monitor VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor GPU performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/monitor-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/monitor-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/monitor-gpus" ><span class="devsite-nav-text" tooltip>Monitor GPU performance on Linux VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/monitor-gpus-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/monitor-gpus-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/monitor-gpus-windows" ><span class="devsite-nav-text" tooltip>Monitor GPU performance on Windows VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor disks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/disk-health" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/disk-health" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/disk-health" ><span class="devsite-nav-text" tooltip>Monitor disk health</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/monitor-regional-persistent-disk-replica-state" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/monitor-regional-persistent-disk-replica-state" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/monitor-regional-persistent-disk-replica-state" ><span class="devsite-nav-text" tooltip>Monitor the replica states of regional persistent disk volumes</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/monitor-pool-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/monitor-pool-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/monitor-pool-performance" ><span class="devsite-nav-text" tooltip>Monitor Hyperdisk Storage Pools</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/monitor-disks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/monitor-disks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/monitor-disks" ><span class="devsite-nav-text" tooltip>Monitor disks</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-monitor" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-monitor" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-monitor" ><span class="devsite-nav-text" tooltip>Monitor reservations</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/labeling-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/labeling-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/labeling-resources" ><span class="devsite-nav-text" tooltip>Organize resources using labels</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Scale</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Autoscale groups of VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/autoscaler" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler" ><span class="devsite-nav-text" tooltip>About autoscaling groups of VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create and manage autoscalers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/scaling-cpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/scaling-cpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/scaling-cpu" ><span class="devsite-nav-text" tooltip>Scale based on CPU utilization</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/predictive-autoscaling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/predictive-autoscaling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/predictive-autoscaling" ><span class="devsite-nav-text" tooltip>Scale based on predictions</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/scaling-load-balancing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/scaling-load-balancing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/scaling-load-balancing" ><span class="devsite-nav-text" tooltip>Scale based on load balancing serving capacity</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/scaling-cloud-monitoring-metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/scaling-cloud-monitoring-metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/scaling-cloud-monitoring-metrics" ><span class="devsite-nav-text" tooltip>Scale based on Monitoring metrics</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/scaling-schedules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/scaling-schedules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/scaling-schedules" ><span class="devsite-nav-text" tooltip>Scale based on schedules</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/multiple-signals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/multiple-signals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/multiple-signals" ><span class="devsite-nav-text" tooltip>Use an autoscaling policy with multiple signals</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/managing-autoscalers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/managing-autoscalers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/managing-autoscalers" ><span class="devsite-nav-text" tooltip>Manage autoscalers</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/understanding-autoscaler-decisions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/understanding-autoscaler-decisions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/understanding-autoscaler-decisions" ><span class="devsite-nav-text" tooltip>Understand autoscaler decisions</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/autoscaler/viewing-autoscaler-logs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/autoscaler/viewing-autoscaler-logs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/autoscaler/viewing-autoscaler-logs" ><span class="devsite-nav-text" tooltip>View autoscaler logs</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/compute/docs/nodes/autoscaling-node-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/autoscaling-node-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/autoscaling-node-groups" ><span class="devsite-nav-text" tooltip>Autoscale node groups</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Reserve VM capacity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-overview" ><span class="devsite-nav-text" tooltip>About reservations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>On-demand reservations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create an on-demand reservation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-single-project" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-single-project" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-single-project" ><span class="devsite-nav-text" tooltip>For a single project</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-shared" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-shared" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-shared" ><span class="devsite-nav-text" tooltip>For multiple projects</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-with-commitments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-with-commitments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-with-commitments" ><span class="devsite-nav-text" tooltip>Combine an on-demand reservation with a CUD</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-modify" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-modify" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-modify" ><span class="devsite-nav-text" tooltip>Modify an on-demand reservation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-delete" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-delete" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-delete" ><span class="devsite-nav-text" tooltip>Delete an on-demand reservation</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Future reservations</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/future-reservations-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/future-reservations-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/future-reservations-overview" ><span class="devsite-nav-text" tooltip>About future reservations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create a reservation request</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/create-single-project-future-reservations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-single-project-future-reservations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-single-project-future-reservations" ><span class="devsite-nav-text" tooltip>For a single project</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/create-shared-future-reservations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/create-shared-future-reservations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/create-shared-future-reservations" ><span class="devsite-nav-text" tooltip>For multiple projects</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/modify-future-reservations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/modify-future-reservations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/modify-future-reservations" ><span class="devsite-nav-text" tooltip>Modify a reservation request</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/delete-future-reservations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/delete-future-reservations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/delete-future-reservations" ><span class="devsite-nav-text" tooltip>Delete a reservation request</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-view" ><span class="devsite-nav-text" tooltip>View reservations or reservation requests</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/reservations-consume" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservations-consume" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservations-consume" ><span class="devsite-nav-text" tooltip>Consume a reservation</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Load balancing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/load-balancing-and-autoscaling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/load-balancing-and-autoscaling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/load-balancing-and-autoscaling" ><span class="devsite-nav-text" tooltip>About load balancing and scaling</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/adding-an-instance-group-to-a-load-balancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/adding-an-instance-group-to-a-load-balancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/adding-an-instance-group-to-a-load-balancer" ><span class="devsite-nav-text" tooltip>Add an instance group to a load balancer</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-https" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-https" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-https" ><span class="devsite-nav-text" tooltip>Request routing to a multi-region external HTTPS load balancer</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/http-load-balancing-iis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/http-load-balancing-iis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/http-load-balancing-iis" ><span class="devsite-nav-text" tooltip>Cross-region load balancing for Microsoft IIS backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-internal" ><span class="devsite-nav-text" tooltip>Set up Internal TCP/UDP Load Balancing</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build reliable and scalable applications</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/tutorials/high-availability-autohealing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/high-availability-autohealing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/high-availability-autohealing" ><span class="devsite-nav-text" tooltip>Use autohealing for highly available applications</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/high-availability-load-balancing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/high-availability-load-balancing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/high-availability-load-balancing" ><span class="devsite-nav-text" tooltip>Use load balancing for highly available applications</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/high-scalability-autoscaling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/high-scalability-autoscaling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/high-scalability-autoscaling" ><span class="devsite-nav-text" tooltip>Use autoscaling for highly scalable applications</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/tutorials/globally-autoscaling-a-web-service-on-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/tutorials/globally-autoscaling-a-web-service-on-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/tutorials/globally-autoscaling-a-web-service-on-compute-engine" ><span class="devsite-nav-text" tooltip>Globally autoscale a web service on Compute Engine</span></a></li><li class="devsite-nav-item"><a href="/architecture/scalable-and-resilient-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/scalable-and-resilient-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/scalable-and-resilient-apps" ><span class="devsite-nav-text" tooltip>Patterns for scalable and resilient applications</span></a></li><li class="devsite-nav-item"><a href="/architecture/patterns-for-floating-ip-addresses-in-compute-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /architecture/patterns-for-floating-ip-addresses-in-compute-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/architecture/patterns-for-floating-ip-addresses-in-compute-engine" ><span class="devsite-nav-text" tooltip>Patterns for using floating IP addresses on Compute Engine</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Optimize</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Resource utilization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use recommendations to manage resources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/apply-machine-type-recommendations-for-instances" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/apply-machine-type-recommendations-for-instances" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/apply-machine-type-recommendations-for-instances" ><span class="devsite-nav-text" tooltip>Apply machine type recommendations to VMs</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/instances/configure-machine-type-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/configure-machine-type-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/configure-machine-type-recommendations" ><span class="devsite-nav-text" tooltip>Configure machine type recommendations</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/apply-machine-type-recommendations-managed-instance-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/apply-machine-type-recommendations-managed-instance-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/apply-machine-type-recommendations-managed-instance-groups" ><span class="devsite-nav-text" tooltip>Apply machine type recommendations to MIGs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/viewing-and-applying-idle-resources-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/viewing-and-applying-idle-resources-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/viewing-and-applying-idle-resources-recommendations" ><span class="devsite-nav-text" tooltip>View and apply idle resources recommendations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-and-understand-vm-insights" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-and-understand-vm-insights" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-and-understand-vm-insights" ><span class="devsite-nav-text" tooltip>View and understand VM insights</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instance-groups/view-and-understand-mig-insights" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instance-groups/view-and-understand-mig-insights" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instance-groups/view-and-understand-mig-insights" ><span class="devsite-nav-text" tooltip>View and understand MIG insights</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage idle VM recommendations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/idle-vm-recommendations-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/idle-vm-recommendations-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/idle-vm-recommendations-overview" ><span class="devsite-nav-text" tooltip>Idle VM recommendations overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/viewing-and-applying-idle-vm-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/viewing-and-applying-idle-vm-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/viewing-and-applying-idle-vm-recommendations" ><span class="devsite-nav-text" tooltip>View and apply idle VM recommendations</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/instances/configuring-idle-vm-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/configuring-idle-vm-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/configuring-idle-vm-recommendations" ><span class="devsite-nav-text" tooltip>Configure idle VM recommendations</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage reservation recommendations</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/reservation-recommendations-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/reservation-recommendations-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/reservation-recommendations-overview" ><span class="devsite-nav-text" tooltip>Reservation recommendations overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-and-apply-idle-reservation-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-and-apply-idle-reservation-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-and-apply-idle-reservation-recommendations" ><span class="devsite-nav-text" tooltip>View and apply idle reservation recommendations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/view-and-apply-underutilized-reservation-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/view-and-apply-underutilized-reservation-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/view-and-apply-underutilized-reservation-recommendations" ><span class="devsite-nav-text" tooltip>View and apply underutilized reservation recommendations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/configure-idle-reservation-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/configure-idle-reservation-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/configure-idle-reservation-recommendations" ><span class="devsite-nav-text" tooltip>Configure idle reservation recommendations</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/configure-underutilized-reservation-recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/configure-underutilized-reservation-recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/configure-underutilized-reservation-recommendations" ><span class="devsite-nav-text" tooltip>Configure underutilized reservation recommendations</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/overcommitting-cpus-sole-tenant-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/overcommitting-cpus-sole-tenant-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/overcommitting-cpus-sole-tenant-vms" ><span class="devsite-nav-text" tooltip>Overcommit CPUs on sole-tenant VMs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manual live migration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/nodes/about-manual-live-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/about-manual-live-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/about-manual-live-migration" ><span class="devsite-nav-text" tooltip>About manual live migration</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/manually-live-migrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/manually-live-migrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/manually-live-migrate" ><span class="devsite-nav-text" tooltip>Manually live migrate VMs</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/nodes/share-node-groups" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/nodes/share-node-groups" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/nodes/share-node-groups" ><span class="devsite-nav-text" tooltip>Share sole-tenant node groups</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/dynamic-resource-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/dynamic-resource-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/dynamic-resource-management" ><span class="devsite-nav-text" tooltip>Next generation dynamic resource management</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Cost savings</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get discounts for committed usage</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/committed-use-discounts-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/committed-use-discounts-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/committed-use-discounts-overview" ><span class="devsite-nav-text" tooltip>About commitments and committed use discounts (CUDs)</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/signing-up-committed-use-discounts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/signing-up-committed-use-discounts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/signing-up-committed-use-discounts" ><span class="devsite-nav-text" tooltip>Resource-based CUDs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage resource-based commitments</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/renew-commitments-automatically" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/renew-commitments-automatically" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/renew-commitments-automatically" ><span class="devsite-nav-text" tooltip>Renew commitments automatically</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/committed-use-discounts/extend-commitment-term" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/committed-use-discounts/extend-commitment-term" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/committed-use-discounts/extend-commitment-term" ><span class="devsite-nav-text" tooltip>Extend the term length of commitments</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/merge-and-split-commitments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/merge-and-split-commitments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/merge-and-split-commitments" ><span class="devsite-nav-text" tooltip>Merge and split commitments</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/upgrade-commitment-term" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/upgrade-commitment-term" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/upgrade-commitment-term" ><span class="devsite-nav-text" tooltip>Upgrade the term of commitments</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/compute/docs/sustained-use-discounts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/sustained-use-discounts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/sustained-use-discounts" ><span class="devsite-nav-text" tooltip>Get discounts for sustained usage</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Disk performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/disks/optimize-hyperdisk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/optimize-hyperdisk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/optimize-hyperdisk" ><span class="devsite-nav-text" tooltip>Optimize Hyperdisk performance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/optimizing-pd-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/optimizing-pd-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/optimizing-pd-performance" ><span class="devsite-nav-text" tooltip>Optimize Persistent Disk performance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/disks/optimizing-local-ssd-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/disks/optimizing-local-ssd-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/disks/optimizing-local-ssd-performance" ><span class="devsite-nav-text" tooltip>Optimize Local SSD performance</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Workload performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/instances/set-threads-per-core" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/set-threads-per-core" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/set-threads-per-core" ><span class="devsite-nav-text" tooltip>Set the number of threads per core</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/customize-visible-cores" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/customize-visible-cores" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/customize-visible-cores" ><span class="devsite-nav-text" tooltip>Customize the number of visible CPU cores</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Analyze the CPU performance using the PMU</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/pmu-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/pmu-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/pmu-overview" ><span class="devsite-nav-text" tooltip>PMU overview</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/enable-pmu-in-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/enable-pmu-in-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/enable-pmu-in-vms" ><span class="devsite-nav-text" tooltip>Enable the PMU in VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/manage-pmu-in-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/manage-pmu-in-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/manage-pmu-in-vms" ><span class="devsite-nav-text" tooltip>Manage the PMU in VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Accelerated workloads with GPUs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>GPUs on Compute Engine</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/about-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/about-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/about-gpus" ><span class="devsite-nav-text" tooltip>About GPUs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Install drivers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/install-drivers-gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/install-drivers-gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/install-drivers-gpu" ><span class="devsite-nav-text" tooltip>Install GPU drivers</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/install-grid-drivers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/install-grid-drivers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/install-grid-drivers" ><span class="devsite-nav-text" tooltip>Install drivers for NVIDIA RTX Virtual Workstations (vWS)</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/grid-drivers-table" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/grid-drivers-table" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/grid-drivers-table" ><span class="devsite-nav-text" tooltip>Drivers for NVIDIA RTX Virtual Workstations (vWS)</span></a></li></ul></div></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Network performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/network-bandwidth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/network-bandwidth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/network-bandwidth" ><span class="devsite-nav-text" tooltip>Network bandwidth</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/using-gvnic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/using-gvnic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/using-gvnic" ><span class="devsite-nav-text" tooltip>Use Google Virtual NIC</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/using-idpf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/using-idpf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/using-idpf" ><span class="devsite-nav-text" tooltip>Use IDPF network interface</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/configure-vm-with-high-bandwidth-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/configure-vm-with-high-bandwidth-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/configure-vm-with-high-bandwidth-configuration" ><span class="devsite-nav-text" tooltip>Configure a VM with higher bandwidth</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/instances/use-compact-placement-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/instances/use-compact-placement-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/instances/use-compact-placement-policies" ><span class="devsite-nav-text" tooltip>Reduce latency by using compact placement policies</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/tcp-optimization-for-network-performance-in-gcp-and-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/tcp-optimization-for-network-performance-in-gcp-and-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/tcp-optimization-for-network-performance-in-gcp-and-hybrid" ><span class="devsite-nav-text" tooltip>Optimize TCP network performance</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/benchmarking-higher-bandwidth-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/benchmarking-higher-bandwidth-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/benchmarking-higher-bandwidth-vms" ><span class="devsite-nav-text" tooltip>Benchmark higher bandwidth VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/load-balancing/optimize-app-latency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/load-balancing/optimize-app-latency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/load-balancing/optimize-app-latency" ><span class="devsite-nav-text" tooltip>Optimize app latency with load balancing</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/networking/use-dpdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/networking/use-dpdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/networking/use-dpdk" ><span class="devsite-nav-text" tooltip>Use DPDK to improve network performance</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Network performance and GPU VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/gpus/gpu-network-bandwidth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/gpu-network-bandwidth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/gpu-network-bandwidth" ><span class="devsite-nav-text" tooltip>Network bandwidths and GPUs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/gpus/optimize-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/gpus/optimize-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/gpus/optimize-gpus" ><span class="devsite-nav-text" tooltip>Use higher network bandwidth</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Troubleshoot</span> </div></li> <li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/general-tips" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/general-tips" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/general-tips" ><span class="devsite-nav-text" tooltip>General tips</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot connectivity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-rdp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-rdp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-rdp" ><span class="devsite-nav-text" tooltip>Troubleshoot RDP</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-ssh-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-ssh-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-ssh-errors" ><span class="devsite-nav-text" tooltip>Troubleshoot SSH</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshoot-os-login" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshoot-os-login" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshoot-os-login" ><span class="devsite-nav-text" tooltip>Troubleshoot OS Login</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot VM operations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-vm-creation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-vm-creation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-vm-creation" ><span class="devsite-nav-text" tooltip>Troubleshoot VM creation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-resource-availability" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-resource-availability" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-resource-availability" ><span class="devsite-nav-text" tooltip>Troubleshoot resource availability errors</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-bulk-vm-creation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-bulk-vm-creation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-bulk-vm-creation" ><span class="devsite-nav-text" tooltip>Troubleshoot bulk API VM creation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-reboots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-reboots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-reboots" ><span class="devsite-nav-text" tooltip>Troubleshoot VM reboots and shutdowns</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-suspend-resume" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-suspend-resume" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-suspend-resume" ><span class="devsite-nav-text" tooltip>Troubleshoot VM suspension</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot unresponsive VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/vm-startup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/vm-startup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/vm-startup" ><span class="devsite-nav-text" tooltip>Troubleshoot VM startup</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/fstab-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/fstab-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/fstab-errors" ><span class="devsite-nav-text" tooltip>Troubleshoot fstab errors</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/kernel-panic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/kernel-panic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/kernel-panic" ><span class="devsite-nav-text" tooltip>Troubleshoot kernel panic</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/collecting-diagnostic-information" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/collecting-diagnostic-information" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/collecting-diagnostic-information" ><span class="devsite-nav-text" tooltip>Collecting diagnostic information</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/collecting-core-dumps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/collecting-core-dumps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/collecting-core-dumps" ><span class="devsite-nav-text" tooltip>Collecting core dumps</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/rescue-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/rescue-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/rescue-vm" ><span class="devsite-nav-text" tooltip>Rescue an inaccessible VM</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-cpu-soft-lockup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-cpu-soft-lockup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-cpu-soft-lockup" ><span class="devsite-nav-text" tooltip>Troubleshoot CPU soft lockups</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot VM configurations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-arm-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-arm-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-arm-vms" ><span class="devsite-nav-text" tooltip>Troubleshoot Arm VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-gpus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-gpus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-gpus" ><span class="devsite-nav-text" tooltip>Troubleshoot GPU VMs</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-nested-vms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-nested-vms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-nested-vms" ><span class="devsite-nav-text" tooltip>Troubleshoot nested virtualization</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/capturing-vm-screenshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/capturing-vm-screenshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/capturing-vm-screenshots" ><span class="devsite-nav-text" tooltip>Troubleshoot using VM screenshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-sole-tenancy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-sole-tenancy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-sole-tenancy" ><span class="devsite-nav-text" tooltip>Troubleshoot sole-tenant nodes</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-performance" ><span class="devsite-nav-text" tooltip>Troubleshoot VM performance issues</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-sudoers-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-sudoers-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-sudoers-file" ><span class="devsite-nav-text" tooltip>Troubleshoot sudoers files</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot Windows VMs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-windows" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-windows" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-windows" ><span class="devsite-nav-text" tooltip>Troubleshoot Windows VMs</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot using the serial console</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-using-serial-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-using-serial-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-using-serial-console" ><span class="devsite-nav-text" tooltip>Troubleshoot using the serial console</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/viewing-serial-port-output" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/viewing-serial-port-output" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/viewing-serial-port-output" ><span class="devsite-nav-text" tooltip>Viewing serial port output</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot instance groups</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-migs" ><span class="devsite-nav-text" tooltip>Troubleshoot managed instance groups (MIGs)</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot OS management</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/import-migrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/import-migrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/import-migrate" ><span class="devsite-nav-text" tooltip>Troubleshoot licenses</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-import-export-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-import-export-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-import-export-images" ><span class="devsite-nav-text" tooltip>Troubleshoot image import and export</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-suse-registration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-suse-registration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-suse-registration" ><span class="devsite-nav-text" tooltip>Troubleshooting SLES pay-as-you-go registration</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-ubuntu-pro-registration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-ubuntu-pro-registration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-ubuntu-pro-registration" ><span class="devsite-nav-text" tooltip>Troubleshooting Ubuntu Pro Registration</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot metadata server</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshoot-metadata-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshoot-metadata-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshoot-metadata-server" ><span class="devsite-nav-text" tooltip>Troubleshoot metadata server</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot networking issues</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-networking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-networking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-networking" ><span class="devsite-nav-text" tooltip>Troubleshoot common networking issues</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/gvnic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/gvnic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/gvnic" ><span class="devsite-nav-text" tooltip>Troubleshoot gVNIC</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-performance" ><span class="devsite-nav-text" tooltip>Troubleshoot VM performance issues</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot storage</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-disk-full-resize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-disk-full-resize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-disk-full-resize" ><span class="devsite-nav-text" tooltip>Troubleshoot full disks and disk resizing</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-disk-nvme" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-disk-nvme" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-disk-nvme" ><span class="devsite-nav-text" tooltip>Troubleshoot NVMe disks</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-instant-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-instant-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-instant-snapshots" ><span class="devsite-nav-text" tooltip>Troubleshoot instant snapshots</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-snapshots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-snapshots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-snapshots" ><span class="devsite-nav-text" tooltip>Troubleshoot standard snapshots</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot reservations and commitments</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-reservation-creation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-reservation-creation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-reservation-creation" ><span class="devsite-nav-text" tooltip>Troubleshoot reservation creation</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-reservation-consumption" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-reservation-consumption" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-reservation-consumption" ><span class="devsite-nav-text" tooltip>Troubleshoot reservation consumption</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-reservation-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-reservation-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-reservation-monitoring" ><span class="devsite-nav-text" tooltip>Troubleshooting reservation monitoring</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-reservation-updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-reservation-updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-reservation-updates" ><span class="devsite-nav-text" tooltip>Troubleshoot reservation updates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshoot-future-reservations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshoot-future-reservations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshoot-future-reservations" ><span class="devsite-nav-text" tooltip>Troubleshoot future reservation creation and updates</span></a></li><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/automatic-commitment-renewal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/automatic-commitment-renewal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/automatic-commitment-renewal" ><span class="devsite-nav-text" tooltip>Troubleshoot automatic commitment renewal</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot quota errors</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshoot-operation-limits" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshoot-operation-limits" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshoot-operation-limits" ><span class="devsite-nav-text" tooltip>Troubleshoot concurrent operation quota errors</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot workload authentication</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/compute/docs/troubleshooting/troubleshooting-default-service-accounts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-default-service-accounts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-default-service-accounts" ><span class="devsite-nav-text" tooltip>Troubleshoot default service accounts</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/compute/docs/troubleshooting/troubleshooting-workload-to-workload-auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /compute/docs/troubleshooting/troubleshooting-workload-to-workload-auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/compute/docs/troubleshooting/troubleshooting-workload-to-workload-auth" ><span class="devsite-nav-text" tooltip>Troubleshoot workload to workload authentication</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Technology areas" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/ai-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI and ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI and ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compute-area" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data analytics and pipelines" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data analytics and pipelines </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/databases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Databases" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Databases </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/dhm-cloud" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Distributed, hybrid, and multicloud" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Distributed, hybrid, and multicloud </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/industry" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Industry solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Industry solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/networking" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Networking" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Networking </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/observability" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Observability and monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Observability and monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Cross-product tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/access-resources" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Access and resources management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Access and resources management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/costs-usage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Costs and usage management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Costs and usage management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud SDK, languages, frameworks, and tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud SDK, languages, frameworks, and tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/iac" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Infrastructure as code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Infrastructure as code </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/migration" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Migration" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Migration </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Related sites" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/free" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Free Trial and Free Tier" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Free Trial and Free Tier </span> </a> </li> <li class="devsite-nav-item"> <a href="/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Sales" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Sales </span> </a> </li> <li class="devsite-nav-item"> <a href="/developers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace </span> </a> </li> <li class="devsite-nav-item"> <a href="/marketplace/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace Documentation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace Documentation </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Skills Boost" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Skills Boost </span> </a> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Solution Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Solution Center </span> </a> </li> <li class="devsite-nav-item"> <a href="/support-hub" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Support </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Tech Youtube Channel" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Tech Youtube Channel </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Cloud" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/compute" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Compute Engine: Virtual Machines (VMs)" > Compute Engine </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/compute/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Compute Engine Documentation" > Documentation </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/compute/docs/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Compute Engine Documentation" product-id="81820" bucket="documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=187134&template=0" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Consume reservations </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <hr class="cloud-divider"> <p>This document explains how to use Compute Engine to do the following:</p> <ul> <li><p>Consume reserved virtual machine (VM) instances.</p></li> <li><p>Verify reservations consumption.</p></li> <li><p>View reservation usage reports.</p></li> </ul> <p>For more information about consuming reservations in other Google Cloud products that use VMs, see the reservations documentation for the following products:</p> <ul> <li><a href="/batch/docs/create-run-job-reservation">Batch</a></li> <li><a href="/dataflow/docs/guides/compute-engine-reservations"> Dataflow</a></li> <li><a href="/dataproc/docs/concepts/configuring-clusters/auto-zone#auto_zone_and_resource_reservations"> Dataproc</a></li> <li><a href="/kubernetes-engine/docs/how-to/consuming-reservations"> Google Kubernetes Engine</a></li> <li>Vertex AI:<ul> <li><a href="/vertex-ai/docs/predictions/use-reservations"> Use reservations with prediction</a></li> <li><a href="/vertex-ai/docs/training/use-reservations"> Use reservations with training</a></li> </ul> </li> </ul> <h2 id="byb" data-text="Before you begin" tabindex="-1">Before you begin</h2> <ul> <li>Review the <a href="/compute/docs/instances/reservations-overview#requirements"> requirements</a> and <a href="/compute/docs/instances/reservations-overview#restrictions"> restrictions</a> for reservations.</li> <li> If you haven't already, then set up authentication. <a href="/compute/docs/authentication">Authentication</a> is the process by which your identity is verified for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:<br/> <p>Select the tab for how you plan to use the samples on this page:</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section> <h3 id="console" data-text="Console" tabindex="-1">Console</h3> <p> When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. </p> </section> <section> <h3 id="gcloud" data-text="gcloud" tabindex="-1">gcloud</h3> <ol><li> <p> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI, then <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> it by running the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> <aside class="note"><strong>Note:</strong> If you installed the gcloud CLI previously, make sure you have the latest version by running <code translate="no" dir="ltr">gcloud components update</code>. </aside> </li><li><a href="/compute/docs/gcloud-compute#set_default_zone_and_region_in_your_local_client"> Set a default region and zone</a>.</li></ol> </section> <section> <h3 id="go" data-text="Go" tabindex="-1">Go</h3> <p> To use the Go samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials. </p> <ol> <li> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI. </li> <li> <p> To <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> the gcloud CLI, run the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> </li> <li> <p> If you're using a local shell, then create local authentication credentials for your user account: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>auth<span class="devsite-syntax-w"> </span>application-default<span class="devsite-syntax-w"> </span>login</pre></devsite-code> <p>You don't need to do this if you're using Cloud Shell.</p> </li> </ol> <p> For more information, see <a href="/compute/docs/authentication#local-development"> Set up authentication for a local development environment</a>. </p> </section> <section> <h3 id="java" data-text="Java" tabindex="-1">Java</h3> <p> To use the Java samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials. </p> <ol> <li> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI. </li> <li> <p> To <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> the gcloud CLI, run the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> </li> <li> <p> If you're using a local shell, then create local authentication credentials for your user account: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>auth<span class="devsite-syntax-w"> </span>application-default<span class="devsite-syntax-w"> </span>login</pre></devsite-code> <p>You don't need to do this if you're using Cloud Shell.</p> </li> </ol> <p> For more information, see <a href="/compute/docs/authentication#local-development"> Set up authentication for a local development environment</a>. </p> </section> <section> <h3 id="node.js" data-text="Node.js" tabindex="-1">Node.js</h3> <p> To use the Node.js samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials. </p> <ol> <li> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI. </li> <li> <p> To <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> the gcloud CLI, run the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> </li> <li> <p> If you're using a local shell, then create local authentication credentials for your user account: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>auth<span class="devsite-syntax-w"> </span>application-default<span class="devsite-syntax-w"> </span>login</pre></devsite-code> <p>You don't need to do this if you're using Cloud Shell.</p> </li> </ol> <p> For more information, see <a href="/compute/docs/authentication#local-development"> Set up authentication for a local development environment</a>. </p> </section> <section> <h3 id="python" data-text="Python" tabindex="-1">Python</h3> <p> To use the Python samples on this page in a local development environment, install and initialize the gcloud CLI, and then set up Application Default Credentials with your user credentials. </p> <ol> <li> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI. </li> <li> <p> To <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> the gcloud CLI, run the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> </li> <li> <p> If you're using a local shell, then create local authentication credentials for your user account: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>auth<span class="devsite-syntax-w"> </span>application-default<span class="devsite-syntax-w"> </span>login</pre></devsite-code> <p>You don't need to do this if you're using Cloud Shell.</p> </li> </ol> <p> For more information, see <a href="/compute/docs/authentication#local-development"> Set up authentication for a local development environment</a>. </p> </section> <section> <h3 id="rest" data-text="REST" tabindex="-1">REST</h3> <p> To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI. </p> <ol> <p> <a href="/sdk/docs/install" track-type="commonIncludes" track-name="sdkLink" target="_blank">Install</a> the Google Cloud CLI, then <a href="/sdk/docs/initializing" track-type="commonIncludes" track-name="sdkLink" target="_blank">initialize</a> it by running the following command: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash">gcloud<span class="devsite-syntax-w"> </span>init</pre></devsite-code> </ol> <p> For more information, see <a href="/docs/authentication/rest">Authenticate for using REST</a> in the Google Cloud authentication documentation. </p> </section> </div> </li> </ul> <h3 id="required-roles" data-text="Required roles" tabindex="-1">Required roles</h3> <p> To get the permissions that you need to consume reservations, ask your administrator to grant you the <a href="https://cloud.google.com/iam/docs/understanding-roles#compute.instanceAdmin.v1">Compute Instance Admin (v1) </a> (<code translate="no" dir="ltr">roles/compute.instanceAdmin.v1</code>) IAM role on the project. For more information about granting roles, see <a href="/iam/docs/granting-changing-revoking-access">Manage access to projects, folders, and organizations</a>. </p> <p> This predefined role contains the permissions required to consume reservations. To see the exact permissions that are required, expand the <strong>Required permissions</strong> section: </p> <devsite-expandable> <h4 class="showalways" id="required-permissions" data-text="Required permissions" tabindex="-1">Required permissions</h4> <p>The following permissions are required to consume reservations:</p> <ul> <li> To create reservations: <code translate="no" dir="ltr">compute.reservations.create</code> on the project </li> <li> To create VMs: <ul> <li><code translate="no" dir="ltr">compute.instances.create</code> on the project</li> <li>To use a custom image to create the VM: <code translate="no" dir="ltr">compute.images.useReadOnly</code> on the image</li> <li>To use a snapshot to create the VM: <code translate="no" dir="ltr">compute.snapshots.useReadOnly</code> on the snapshot</li> <li>To use an instance template to create the VM: <code translate="no" dir="ltr">compute.instanceTemplates.useReadOnly</code> on the instance template</li> <li>To assign a <a href="/vpc/docs/legacy">legacy network</a> to the VM: <code translate="no" dir="ltr">compute.networks.use</code> on the project</li> <li>To specify a static IP address for the VM: <code translate="no" dir="ltr">compute.addresses.use</code> on the project</li> <li>To assign an external IP address to the VM when using a legacy network: <code translate="no" dir="ltr">compute.networks.useExternalIp</code> on the project</li> <li>To specify a subnet for the VM: <code translate="no" dir="ltr">compute.subnetworks.use</code> on the project or on the chosen subnet</li> <li>To assign an external IP address to the VM when using a VPC network: <code translate="no" dir="ltr">compute.subnetworks.useExternalIp</code> on the project or on the chosen subnet</li> <li>To set VM instance metadata for the VM: <code translate="no" dir="ltr">compute.instances.setMetadata</code> on the project</li> <li>To set tags for the VM: <code translate="no" dir="ltr">compute.instances.setTags</code> on the VM</li> <li>To set labels for the VM: <code translate="no" dir="ltr">compute.instances.setLabels</code> on the VM</li> <li>To set a service account for the VM to use: <code translate="no" dir="ltr">compute.instances.setServiceAccount</code> on the VM</li> <li>To create a new disk for the VM: <code translate="no" dir="ltr">compute.disks.create</code> on the project</li> <li>To attach an existing disk in read-only or read-write mode: <code translate="no" dir="ltr">compute.disks.use</code> on the disk</li> <li>To attach an existing disk in read-only mode: <code translate="no" dir="ltr">compute.disks.useReadOnly</code> on the disk</li> </ul> </li> <li> To create instance templates: <code translate="no" dir="ltr">compute.instanceTemplates.create</code> on the project </li> </ul> </devsite-expandable> <p> You might also be able to get these permissions with <a href="/iam/docs/creating-custom-roles">custom roles</a> or other <a href="/iam/docs/understanding-roles">predefined roles</a>. </p> <h2 id="consuming_reserved_instances" data-text="Consume reserved VMs" tabindex="-1">Consume reserved VMs</h2> <p>When you create a virtual machine (VM) instance, the VM starts consuming a reservation only if the properties for both the VM and the reservation are <a href="/compute/docs/instances/reservations-overview#requirements">matching</a>. Additionally, you must set the reservation affinity property of the VM to one of the following options:</p> <ul> <li><p><a href="#consuming_instances_from_any_matching_reservation">Consume any matching reservation</a>—the VM can automatically consume any reservation with matching properties (default).</p> <p>This option is useful if you create and delete lots of VMs, and you want to use your reservations whenever possible. In this scenario, a VM can be created whether its properties match a reservation or not. If they match, the VM starts consuming the reservation depending on the reservation's <a href="/compute/docs/instances/reservations-overview#consumption-type">consumption order</a>.</p></li> <li><p><a href="#consuming_instances_from_a_specific_reservation">Consume a specific reservation</a>—the VM can consume only a specific reservation. The reservation can't be automatically consumed.</p> <p>This option is useful when, for example, you want to hold a certain amount of capacity as backup for special events. In this scenario, a VM can be created only if its properties and the specific reservation's properties are matching.</p> <aside class="note"><strong>Note:</strong><span> You can create a specific reservation and a VM with this affinity to test that the VM is <a href="#test-properties-match">correctly configured to automatically consume a matching reservation</a>.</span></aside></li> <li><p><a href="#creating_instances_without_consuming_reservations">Can't consume any reservation at all</a>—the VM can't consume any reservation.</p> <p>This option is useful when, for example, you create a temporary VM that you don't want to consume reserved resources.</p></li> </ul> <h3 id="consuming_instances_from_any_matching_reservation" data-text="Consume VMs from any matching reservation" tabindex="-1">Consume VMs from any matching reservation</h3> <p>In this consumption model, existing and new VMs automatically consume a reservation if their properties match the VM properties specified in the reservation.</p> <p>When using this consumption model, the VMs in the current project consume all single-project reservations first before consuming any shared reservations. For more information about how reservations are automatically consumed, see <a href="/compute/docs/instances/reservations-overview#consumption-order">consumption order</a>.</p> <p>When you create a reservation, this is the default consumption model, as long as you don't use the flag or option that indicates specific reservations are required.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="console" data-text=" Console " tabindex="-1"> Console </h3><ol> <li><p>To create a reservation with resources that can be used by VMs with a reservation affinity property configured to consume any reservations (default), follow these steps:</p> <ol> <li><p>Select the type of reservation that you want to create:</p> <ul> <li><p>To create standalone reservation, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Reservations</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/reservations" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Reservations</a> </p></li> <li><p>On the <strong>On-demand reservation</strong> tab (default), click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Create reservation</strong>.</p> <p>The <strong>Create a reservation</strong> page opens.</p></li> </ol></li> <li><p>To create a reservation that is attached to a commitment, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Committed use discounts</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/commitments" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Committed use discounts</a> </p> <p>The <strong>Commitment list</strong> page opens.</p></li> <li><p>Click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Purchase commitment</strong>.</p> <p>The <strong>Purchase a committed use discount</strong> page opens.</p></li> <li><p>Specify the commitment properties. Then, in the <strong>Reservations</strong> section, click <strong>Add an item</strong>.</p> <p>The <strong>Add a new reservation</strong> section appears.</p> <p>For more information about how to purchase a commitment with an attached reservation, see <a href="/compute/docs/instances/reservations-with-commitments#purchasing_a_commitment_with_a_reservation">Purchase commitments with attached reservations</a>.</p></li> </ol></li> </ul></li> <li><p>In the <strong>Name</strong> field, enter a name for your reservation. For this example, enter <code translate="no" dir="ltr">reservation-01</code>.</p></li> <li><p>Choose the <strong>Region</strong> and <strong>Zone</strong> where you want to reserve resources. For this example, select <code translate="no" dir="ltr">us-central1</code> as the region and <code translate="no" dir="ltr">us-central1-a</code> as the zone.</p></li> <li><p>Choose your preferred <strong>Share type</strong>:</p> <ul> <li>To create a reservation for a single project, select <strong>Local</strong>.</li> <li>To create a shared reservation among multiple projects, select <strong>Shared</strong>. To share this reservation with other projects, click <span class="material-icons" aria-hidden="true" translate="no">add</span> <strong>Add projects</strong> and select the desired projects from the current project's organization.</li> </ul></li> <li><p>In the <strong>Use with VM instance</strong> section, select <strong>Use reservation automatically</strong>, so that any matching VMs can automatically use this reservation.</p></li> <li><p>In the <strong>Number of VM instances</strong> field, enter the number of VMs that you want to reserve. For this example, enter <code translate="no" dir="ltr">2</code>.</p></li> <li><p>Specify the resources that you want to reserve for each VM:</p> <ul> <li>If you want to reserve VMs that match an existing <a href="/compute/docs/instance-templates/create-instance-templates">instance template</a>, select <strong>Use instance template</strong> and select an instance template from the list.</li> <li>Otherwise, select <strong>Specify machine type</strong> and specify the following: <ol> <li>In the <strong>Machine family</strong>, <strong>Series</strong>, and <strong>Machine type</strong> fields, select a machine family, series, and machine type.</li> <li>Optional: Specify a minimum CPU platform and/or GPUs: <ol> <li>To expand the <strong>CPU Platform and GPU</strong> section, click the <span class="material-icons" aria-hidden="true" translate="no">expand_more</span> expander arrow.</li> <li>Optional: To specify a minimum CPU platform, in the <strong>CPU Platform</strong> list, select an option.</li> <li>Optional: To add GPUs, click <span class="material-icons" aria-hidden="true" translate="no">add</span> <strong>Add GPU</strong>. Then, in the <strong>GPU type</strong> and <strong>Number of GPUs</strong> fields, select the type and number of GPUs for each VM.</li> </ol></li> <li>Optional: Add local SSDs: <ol> <li>In the <strong>Number of disks</strong> field, select the number of local SSDs for each VM.</li> <li>In the <strong>Interface type</strong> field, select the interface for the local SSDs.</li> </ol></li> </ol></li> </ul> <p>For this example, select <strong>Specify machine type</strong>. Then select the <code translate="no" dir="ltr">n2-standard-32</code> machine type for the <code translate="no" dir="ltr">General-purpose</code> machine family and <code translate="no" dir="ltr">N2</code> series and select the minimum CPU platform <code translate="no" dir="ltr">Intel Cascade Lake</code>.</p></li> <li><p>Finish creating the reservation:</p> <ul> <li><p>If you are creating standalone reservation, click <strong>Create</strong>.</p></li> <li><p>If you are creating a reservation that is attached to a commitment:</p> <ol> <li>To finish specifying the properties for this reservation, click <strong>Done</strong>.</li> <li>To finish creating the commitment and attached reservations, click <strong>Purchase</strong>.</li> </ol></li> </ul></li> </ol></li> <li><p>In the same project or a project that the reservation is shared with, create a VM that targets any open reservation.</p> <p>Ensure that the VM's properties match the VM properties in <code translate="no" dir="ltr">reservation-01</code>, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <p>For more information about how to create a VM, see <a href="/compute/docs/instances/create-start-instance">Create and start a VM</a></p> <ol> <li><p>In the Google Cloud console, go to the <strong>Create an instance</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/instancesAdd" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createInstance" class="button button-primary">Go to Create an instance</a> </p> <p>The <strong>Create an instance page</strong> opens.</p></li> <li><p>Specify a name for your VM.</p></li> <li><p>In the following sections, select a configuration that exactly matches all the properties of your reservation, including any optional properties. For this example, you must match the following VM properties with <code translate="no" dir="ltr">reservation-01</code>:</p> <ul> <li><strong>Region</strong>: <code translate="no" dir="ltr">us-central1</code></li> <li><strong>Zone</strong>: <code translate="no" dir="ltr">us-central1-a</code></li> <li><strong>Machine type</strong>: <code translate="no" dir="ltr">n2-standard-32</code></li> <li>Minimum <strong>CPU platform</strong>: <code translate="no" dir="ltr">Intel Cascade Lake</code></li> <li><strong>GPUs</strong>: none</li> <li><strong>Local SSDs</strong>: none</li> </ul></li> <li><p>Expand the <strong>Advanced options</strong> section and then expand the <strong>Management</strong> section. In the <strong>Reservations</strong> list, select <strong>Automatically use created reservation</strong>.</p></li> <li><p>To create the VM, click <strong>Create</strong>.</p></li> </ol></li> </ol></section> <section><h3 id="gcloud" data-text="gcloud" tabindex="-1">gcloud</h3><ol> <li><p>Create an open reservation called <code translate="no" dir="ltr">reservation-01</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute reservations create reservation-01 \ --vm-count=2 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --zone=us-central1-a </code></pre></devsite-code></li> <li><p>Create a VM that targets any open reservation and that matches the VM properties in <code translate="no" dir="ltr">reservation-01</code>, including the zone, machine type (machine family. vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD amount and interface.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute instances create instance-1 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --zone=us-central1-a \ <strong>--reservation-affinity=any</strong> </code></pre></devsite-code></li> </ol></section> <section><h3 id="go" data-text=" Go " tabindex="-1"> Go </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/compute/reservations/consume_any_reservation.go/HEAD/compute_consume_any_matching_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_any_reservation.go" feedback-context="{"language": "go", "region_tag": "compute_consume_any_matching_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_any_reservation.go"}" feedback-product="1634365" feedback-bucket="infraops" language="go" data-github-path="GoogleCloudPlatform/golang-samples/compute/reservations/consume_any_reservation.go" data-git-revision="HEAD" data-region-tag="compute_consume_any_matching_reservation" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1/computepb"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google.golang.org/protobuf/proto"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// consumeAnyReservation creates instance, consuming any available reservation</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeAnyReservation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceTemplate</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// projectID := "your_project_id"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// zone := "us-west3-a"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// instanceName := "your_instance_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// sourceTemplate: existing template path. Following formats are allowed:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// - projects/{project_id}/global/instanceTemplates/{template_name}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// - projects/{project_id}/regions/{region}/instanceTemplates/{template_name}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// - https://www.googleapis.com/compute/v1/projects/{project_id}/global/instanceTemplates/instanceTemplate</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// - https://www.googleapis.com/compute/v1/projects/{project_id}/regions/{region}/instanceTemplates/instanceTemplate</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewInstancesRESTClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NewInstancesRESTClient: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">defer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Close</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InsertInstanceRequest</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Project</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Zone</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">SourceInstanceTemplate</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">sourceTemplate</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceResource</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// specifies that any matching reservation should be consumed</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ConsumeReservationType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"ANY_RESERVATION"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create instance: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Wait</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to wait for the operation: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Instance created from reservation\n"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section><h3 id="java" data-text=" Java " tabindex="-1"> Java </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeAnyMatchingReservation.java/HEAD/compute_consume_any_matching_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeAnyMatchingReservation.java" feedback-context="{"language": "java", "region_tag": "compute_consume_any_matching_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeAnyMatchingReservation.java"}" feedback-product="1634365" feedback-bucket="infraops" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeAnyMatchingReservation.java" data-git-revision="HEAD" data-region-tag="compute_consume_any_matching_reservation" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity.ConsumeReservationType.ANY_RESERVATION</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.api.gax.longrunning.OperationFuture</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDisk</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDiskInitializeParams</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InsertInstanceRequest</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Instance</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstancesClient</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.NetworkInterface</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Operation</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.ExecutionException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeUnit</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeoutException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">ConsumeAnyMatchingReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Project ID or project number of the Cloud project you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_PROJECT_ID"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Zone where the VM instance will be created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1-a"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the VM instance you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_INSTANCE_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// machineType: machine type of the VM being created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For a list of machine types, see https://cloud.google.com/compute/docs/machine-types</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n1-standard-4"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// sourceImage: path to the operating system image to mount.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For details about images you can mount, see https://cloud.google.com/compute/docs/images</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// diskSizeGb: storage size of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">10L</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// networkName: network interface to associate with the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"default"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Minimum CPU platform of the instances.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Intel Skylake"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create a virtual machine targeted with the reserveAffinity field.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// In this consumption model, existing and new VMs automatically consume a reservation</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// if their properties match the VM properties specified in the reservation.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">format</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs to be created</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">create</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setBoot</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setAutoDelete</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">Type</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDeviceName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"disk-1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setSourceImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskSizeGb</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setConsumeReservationType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">ANY_RESERVATION</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMachineType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addDisks</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addNetworkInterfaces</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMinCpuPlatform</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setReservationAffinity</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProject</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setZone</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInstanceResource</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">OperationFuture<Operation</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span>><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">insertAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeUnit</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">MINUTES</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">hasError</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section><h3 id="node.js" data-text=" Node.js " tabindex="-1"> Node.js </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToConsumeAnyReservation.js/HEAD/compute_consume_any_matching_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToConsumeAnyReservation.js" feedback-context="{"language": "nodejs", "region_tag": "compute_consume_any_matching_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToConsumeAnyReservation.js"}" feedback-product="1634365" feedback-bucket="infraops" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToConsumeAnyReservation.js" data-git-revision="HEAD" data-region-tag="compute_consume_any_matching_reservation" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-c1">// Import the Compute library</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/compute'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">protos</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">cloud</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">v1</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Instantiate a reservationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstancesClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// Instantiate a zoneOperationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ZoneOperationsClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update/uncomment these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-c1">// The ID of the project where you want to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getProjectId</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// The zone in which to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'us-central1-a'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// The name of the instance to create.</span> <span class="devsite-syntax-c1">// const instanceName = 'instance-01';</span> <span class="devsite-syntax-c1">// Machine type to use for VM.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'n1-standard-4'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Create instance to consume reservation if their properties match the VM properties</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToConsumeAnyReservation</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Describe the size and source image of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Disk</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">boot</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">autoDelete</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">type</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PERSISTENT'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">initializeParams</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">diskSizeGb</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'10'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'projects/debian-cloud/global/images/family/debian-12'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define networkInterface</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'global/networks/default'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define reservationAffinity</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeReservationType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'ANY_RESERVATION'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create an instance</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-sb">`zones/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">/machineTypes/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">`</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">minCpuPlatform</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'Intel Skylake'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disks</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterfaces</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">insert</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceResource</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">let</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">latestResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the create instance operation to complete.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'DONE'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">wait</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">split</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'/'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">pop</span><span class="devsite-syntax-p">(),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`Instance </span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb"> created.`</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToConsumeAnyReservation</span><span class="devsite-syntax-p">();</span></code></pre></devsite-code> </div> </section> <section><h3 id="python" data-text=" Python " tabindex="-1"> Python </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_any_project_reservation.py/HEAD/compute_consume_any_matching_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_any_project_reservation.py" feedback-context="{"language": "python", "region_tag": "compute_consume_any_matching_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_any_project_reservation.py"}" feedback-product="1634365" feedback-bucket="infraops" language="python" data-github-path="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_any_project_reservation.py" data-git-revision="HEAD" data-region-tag="compute_consume_any_matching_reservation" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">__future__</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">annotations</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">sys</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">typing</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">Any</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.api_core.extended_operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">ExtendedOperation</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.cloud</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">compute_v1</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">ExtendedOperation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"operation"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">int</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-mi">300</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">Any</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Waits for the extended (long-running) operation to complete.</span> <span class="devsite-syntax-sd"> If the operation is successful, it will return its result.</span> <span class="devsite-syntax-sd"> If the operation ends with an error, an exception will be raised.</span> <span class="devsite-syntax-sd"> If there were any warnings during the execution of the operation</span> <span class="devsite-syntax-sd"> they will be printed to sys.stderr.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> operation: a long-running operation you want to wait on.</span> <span class="devsite-syntax-sd"> verbose_name: (optional) a more verbose name of the operation,</span> <span class="devsite-syntax-sd"> used only during error and warning reporting.</span> <span class="devsite-syntax-sd"> timeout: how long (in seconds) to wait for operation to finish.</span> <span class="devsite-syntax-sd"> If None, wait indefinitely.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> Whatever the operation.result() returns.</span> <span class="devsite-syntax-sd"> Raises:</span> <span class="devsite-syntax-sd"> This method will raise the exception received from `operation.exception()`</span> <span class="devsite-syntax-sd"> or RuntimeError if there is no exception set, but there is an `error_code`</span> <span class="devsite-syntax-sd"> set for the `operation`.</span> <span class="devsite-syntax-sd"> In case of an operation taking longer than `timeout` seconds to complete,</span> <span class="devsite-syntax-sd"> a `concurrent.futures.TimeoutError` will be raised.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">result</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Error during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: [Code: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">]: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Operation ID: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">raise</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">exception</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-ow">or</span> <span class="devsite-syntax-ne">RuntimeError</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Warnings during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">:</span><span class="devsite-syntax-se">\n</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">for</span> <span class="devsite-syntax-n">warning</span> <span class="devsite-syntax-ow">in</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">" - </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">consume_any_project_reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"n1-standard-1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"Intel Ivy Bridge"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Creates a specific reservation in a single project and launches a VM</span> <span class="devsite-syntax-sd"> that consumes the newly created reservation.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> project_id (str): The ID of the Google Cloud project.</span> <span class="devsite-syntax-sd"> zone (str): The zone to create the reservation.</span> <span class="devsite-syntax-sd"> reservation_name (str): The name of the reservation to create.</span> <span class="devsite-syntax-sd"> instance_name (str): The name of the instance to create.</span> <span class="devsite-syntax-sd"> machine_type (str): The machine type for the instance.</span> <span class="devsite-syntax-sd"> min_cpu_platform (str): The minimum CPU platform for the instance.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">instance_properties</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUAllocationReservedInstanceProperties</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">reservation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">specific_reservation</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUReservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">count</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Create a reservation client</span> <span class="devsite-syntax-n">client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationsClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_resource</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"Reservation creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance_name</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"zones/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">/machineTypes/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-c1"># Set the reservation affinity to target any matching reservation</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">reservation_affinity</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">consume_reservation_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ANY_RESERVATION"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of reservation to consume</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Define the disks for the instance</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">disks</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">boot</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Indicates that this is a boot disk</span> <span class="devsite-syntax-n">auto_delete</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The disk will be deleted when the instance is deleted</span> <span class="devsite-syntax-n">initialize_params</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">source_image</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">disk_size_gb</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">network_interfaces</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">network</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"global/networks/default"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The network to use</span> <span class="devsite-syntax-n">access_configs</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"External NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Name of the access configuration</span> <span class="devsite-syntax-nb">type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ONE_TO_ONE_NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of access configuration</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># Create a request to insert the instance</span> <span class="devsite-syntax-n">request</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">project</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">project_id</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">instance_resource</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-n">vm_client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"instance creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Instance </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2"> that targets any open reservation created."</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">)</span> </code></pre></devsite-code> </div> </section> <section><h3 id="rest" data-text=" REST " tabindex="-1"> REST </h3><ol> <li><p>Create an open reservation named <code translate="no" dir="ltr">reservation-01</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "machineType": "n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", } } } </code></pre></devsite-code></li> <li><p>Create a VM that targets any open reservation and that matches the VM properties in <code translate="no" dir="ltr">reservation-01</code>, including the zone, machine type (machine family. vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD amount and interface.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances { "name": "instance-1", "machineType": "zones/us-central1-a/machineTypes/n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-12" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "ANY_RESERVATION" } } </code></pre></devsite-code></li> </ol></section> </div> <h3 id="consuming_instances_from_a_specific_reservation" data-text="Consume VMs from a specific reservation" tabindex="-1">Consume VMs from a specific reservation</h3> <p>In this consumption model, only new VMs that target a specific reservation by name can consume that reservation, and the reservation is not consumed automatically.</p> <p>When creating the reservation, specify that VMs are required to target the specific reservation by using one of the following methods:</p> <ul> <li>In the Google Cloud console, select the <strong>Select specific reservation</strong> checkbox.</li> <li>In the gcloud CLI, include the <code translate="no" dir="ltr">--require-specific-reservation</code> flag.</li> <li>In the Compute Engine API, set the <code translate="no" dir="ltr">specificReservationRequired</code> field to <code translate="no" dir="ltr">true</code>.</li> <li>In Terraform, set the <code translate="no" dir="ltr">specific_reservation_required</code> field to <code translate="no" dir="ltr">true</code>.</li> </ul> <p>Then <a href="/compute/docs/instances/create-start-instance">create VMs</a> that specifically target that reservation. You can only create a VM that targets a specific reservation if the VM properties and the reservation's properties are matching. Otherwise, creating the VM <a href="/compute/docs/troubleshooting/troubleshooting-vm-creation#mismatched_reservation_properties">fails</a>. <p>If you are using an instance template to create VMs in a regional managed instance group, create identical reservations with the same name in each applicable zone. Then, target the reservations by name in the group's instance template.</p> <p>For example, create a specific reservation named <code translate="no" dir="ltr">reservation-02</code>, and then create a matching VM that targets that reservation and that matches the reservation's VM properties.</p> <p>Depending on the type of VM you want to consume, follow the steps for <a href="#consuming_a_specific_single-project_reservation">Consume a specific single-project reservation</a> or <a href="#consuming_a_specific_shared_reservation">Consume a specific shared reservation</a>.</p> <h4 id="consuming_a_specific_single-project_reservation" data-text="Consume a specific single-project reservation" tabindex="-1">Consume a specific single-project reservation</h4> <p>To consume a specific single-project reservation, select one of the following options:</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="console_1" data-text=" Console " tabindex="-1"> Console </h3><ol> <li><p>To create a reservation with resources that can only be used by VMs that specifically target the reservation by name, follow these steps:</p> <ol> <li><p>Select one of the following options:</p> <ul> <li><p>To create standalone reservation, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Reservations</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/reservations" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Reservations</a> </p></li> <li><p>On the <strong>On-demand reservations</strong> tab (default), click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Create reservation</strong>.</p> <p>The <strong>Create a reservation</strong> page opens.</p></li> </ol></li> <li><p>To create a reservation that is attached to a commitment, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Committed use discounts</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/commitments" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Committed use discounts</a> </p></li> <li><p>Click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Purchase commitment</strong>.</p> <p>The <strong>Purchase a committed use discount</strong> page opens.</p></li> <li><p>Specify the commitment properties. Then, in the <strong>Reservations</strong> section, click <strong>Add an item</strong>.</p> <p>The <strong>Add a new reservation</strong> section appears.</p> <p>For more information about how to purchase a commitment with an attached reservation, see <a href="/compute/docs/instances/reservations-with-commitments#purchasing_a_commitment_with_a_reservation">Purchase commitments with attached reservations</a>.</p></li> </ol></li> </ul></li> <li><p>In the <strong>Name</strong> field, enter a name for your reservation. For this example, enter <code translate="no" dir="ltr">reservation-02</code>.</p></li> <li><p>Choose the <strong>Region</strong> and <strong>Zone</strong> where you want to reserve resources. For this example, select <code translate="no" dir="ltr">us-central1</code> as the region and <code translate="no" dir="ltr">us-central1-a</code> as the zone.</p></li> <li><p>To specify that your reservation will be a single-project reservation, select <strong>Local</strong> as the <strong>Share type</strong>.</p></li> <li><p>In the <strong>Use with VM instance</strong> section, select <strong>Select specific reservation</strong>, so that only matching VMs that specifically target this reservation by name can use this reservation.</p></li> <li><p>In the <strong>Number of VM instances</strong> field, enter the number of VMs that you want to reserve. For this example, enter <code translate="no" dir="ltr">10</code>.</p></li> <li><p>Specify the resources that you want to reserve for each VM:</p> <ul> <li>If you want to reserve VMs that match an existing <a href="/compute/docs/instance-templates/create-instance-templates">instance template</a>, select <strong>Use instance template</strong> and select an instance template from the list.</li> <li>Otherwise, select <strong>Specify machine type</strong> and specify the following: <ol> <li>In the <strong>Machine family</strong>, <strong>Series</strong>, and <strong>Machine type</strong> fields, select a machine family, series, and machine type.</li> <li>Optional: Specify a minimum CPU platform and/or GPUs: <ol> <li>To expand the <strong>CPU Platform and GPU</strong> section, click the <span class="material-icons" aria-hidden="true" translate="no">expand_more</span> expander arrow.</li> <li>Optional: To specify a minimum CPU platform, in the <strong>CPU Platform</strong> list, select an option.</li> <li>Optional: To add GPUs, click <span class="material-icons" aria-hidden="true" translate="no">add</span> <strong>Add GPU</strong>. Then, in the <strong>GPU type</strong> and <strong>Number of GPUs</strong> fields, select the type and number of GPUs for each VM.</li> </ol></li> <li>Optional: Add local SSDs: <ol> <li>In the <strong>Number of disks</strong> field, select the number of local SSDs for each VM.</li> <li>In the <strong>Interface type</strong> field, select the interface for the local SSDs.</li> </ol></li> </ol></li> </ul> <p>For this example, select <strong>Specify machine type</strong>. Then select the <code translate="no" dir="ltr">n2-standard-32</code> machine type for the <code translate="no" dir="ltr">General-purpose</code> machine family and <code translate="no" dir="ltr">N2</code> series and select the minimum CPU platform <code translate="no" dir="ltr">Intel Cascade Lake</code>.</p></li> <li><p>Finish creating the reservation:</p> <ul> <li><p>If you are creating standalone reservation, click <strong>Create</strong>.</p></li> <li><p>If you are creating a reservation that is attached to a commitment:</p> <ol> <li>To finish specifying the properties for this reservation, click <strong>Done</strong>.</li> <li>To finish creating the commitment and attached reservations, click <strong>Purchase</strong>.</li> </ol></li> </ul></li> </ol></li> <li><p>In the same project, create a VM that targets that specific reservation by name.</p> <p>Ensure that the VM's properties match the VM properties of that specific reservation, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <p>For more information about how to create a VM, see <a href="/compute/docs/instances/create-start-instance">Create and start a VM</a>.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Create an instance</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/instancesAdd" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createInstance" class="button button-primary">Go to Create an instance</a> </p></li> <li><p>In the <strong>Name</strong> field, enter a name for the VM.</p></li> <li><p>In the following sections, select a configuration that exactly matches all the properties of your reservation, including any optional properties. For this example, you must match the following VM properties with <code translate="no" dir="ltr">reservation-02</code>:</p> <ul> <li><strong>Region</strong>: <code translate="no" dir="ltr">us-central1</code></li> <li><strong>Zone</strong>: <code translate="no" dir="ltr">us-central1-a</code></li> <li><strong>Machine type</strong>: <code translate="no" dir="ltr">n2-standard-32</code></li> <li>Minimum <strong>CPU platform</strong>: <code translate="no" dir="ltr">Intel Cascade Lake</code></li> <li><strong>GPUs</strong>: none</li> <li><strong>Local SSDs</strong>: none</li> </ul></li> <li><p>Expand the <strong>Advanced options</strong> section, and then do the following:</p> <ol> <li><p>Expand the <strong>Management</strong> section.</p></li> <li><p>In the <strong>Reservations</strong> section, in the <strong>Application policy</strong> list, select <strong>Select specific reservation</strong>.</p></li> <li><p>Select the reservation with matching VM properties that you want your VM to consume. For this example, select <code translate="no" dir="ltr">reservation-02</code>.</p></li> </ol></li> <li><p>To create the VM, click <strong>Create</strong>.</p></li> </ol></li> </ol></section> <section><h3 id="gcloud_1" data-text="gcloud" tabindex="-1">gcloud</h3><ol> <li><p>Create a reservation named <code translate="no" dir="ltr">reservation-02</code> with the <code translate="no" dir="ltr">--require-specific-reservation</code> flag. These reserved resources can be used only by VMs that specifically target this reservation by name.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute reservations create reservation-02 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --vm-count=10 \ --zone=us-central1-a \ <strong>--require-specific-reservation</strong> </code></pre></devsite-code></li> <li><p>Create a VM that targets <code translate="no" dir="ltr">reservation-02</code> by name by using the <code translate="no" dir="ltr">--reservation-affinity</code> and <code translate="no" dir="ltr">--reservation</code> flags.</p> <p>Ensure that the VM's properties match the reservation's VM properties, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute instances create instance-2 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --zone=us-central1-a \ <strong>--reservation-affinity=specific \ --reservation=reservation-02</strong> </code></pre></devsite-code></li> </ol></section> <section><h3 id="go_1" data-text=" Go " tabindex="-1"> Go </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/compute/reservations/consume_specific_reservation.go/HEAD/compute_consume_single_project_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_specific_reservation.go" feedback-context="{"language": "go", "region_tag": "compute_consume_single_project_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_specific_reservation.go"}" feedback-product="1634365" feedback-bucket="infraops" language="go" data-github-path="GoogleCloudPlatform/golang-samples/compute/reservations/consume_specific_reservation.go" data-git-revision="HEAD" data-region-tag="compute_consume_single_project_reservation" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1/computepb"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google.golang.org/protobuf/proto"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// consumeSpecificReservation creates instance, consuming specific reservation</span> <span class="devsite-syntax-c1">// Note: respective reservation should have SpecificReservationRequired: true</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeSpecificReservation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// projectID := "your_project_id"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// zone := "us-west3-a"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// reservationName := "your_reservation_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// instanceName := "your_instance_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Sprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n2-standard-32"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-12"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewInstancesRESTClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NewInstancesRESTClient: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">defer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Close</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InsertInstanceRequest</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Project</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Zone</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceResource</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Disks</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InitializeParams</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">DiskSizeGb</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Int64</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">SourceImage</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">AutoDelete</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Boot</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Type</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk_PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">()),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MachineType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MinCpuPlatform</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Intel Cascade Lake"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">NetworkInterfaces</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"global/networks/default"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// specifies particular reservation, which should be consumed</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ConsumeReservationType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"SPECIFIC_RESERVATION"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Key</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Values</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-nx">reservationName</span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create instance: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Wait</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to wait for the operation: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Instance created from reservation\n"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section><h3 id="java_1" data-text=" Java " tabindex="-1"> Java </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeSingleProjectReservation.java/HEAD/compute_consume_single_project_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeSingleProjectReservation.java" feedback-context="{"language": "java", "region_tag": "compute_consume_single_project_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeSingleProjectReservation.java"}" feedback-product="1634365" feedback-bucket="infraops" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeSingleProjectReservation.java" data-git-revision="HEAD" data-region-tag="compute_consume_single_project_reservation" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity.ConsumeReservationType.SPECIFIC_RESERVATION</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.api.gax.longrunning.OperationFuture</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDisk</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDiskInitializeParams</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InsertInstanceRequest</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Instance</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstancesClient</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.NetworkInterface</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Operation</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.ExecutionException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeUnit</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeoutException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">ConsumeSingleProjectReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Project ID or project number of the Cloud project you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_PROJECT_ID"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the zone where the reservation is located.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1-a"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the reservation you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_RESERVATION_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the VM instance you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_INSTANCE_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// machineType: machine type of the VM being created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For a list of machine types, see https://cloud.google.com/compute/docs/machine-types</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n1-standard-4"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// sourceImage: path to the operating system image to mount.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For details about images you can mount, see https://cloud.google.com/compute/docs/images</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// diskSizeGb: storage size of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">10L</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// networkName: network interface to associate with the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"default"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Minimum CPU platform of the instances.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Intel Skylake"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create a virtual machine targeted with the reserveAffinity field.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Ensure that the VM's properties match the reservation's VM properties.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">format</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs to be created</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">create</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setBoot</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setAutoDelete</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">Type</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDeviceName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"disk-1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setSourceImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskSizeGb</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setConsumeReservationType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">SPECIFIC_RESERVATION</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setKey</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Set specific reservation</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addValues</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMachineType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addDisks</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addNetworkInterfaces</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMinCpuPlatform</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setReservationAffinity</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProject</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setZone</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInstanceResource</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">OperationFuture<Operation</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span>><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">insertAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeUnit</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">MINUTES</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">hasError</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section><h3 id="node.js_1" data-text=" Node.js " tabindex="-1"> Node.js </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToConsumeSingleProjectReservation.js/HEAD/compute_consume_single_project_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToConsumeSingleProjectReservation.js" feedback-context="{"language": "nodejs", "region_tag": "compute_consume_single_project_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToConsumeSingleProjectReservation.js"}" feedback-product="1634365" feedback-bucket="infraops" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToConsumeSingleProjectReservation.js" data-git-revision="HEAD" data-region-tag="compute_consume_single_project_reservation" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-c1">// Import the Compute library</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/compute'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">protos</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">cloud</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">v1</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Instantiate a reservationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstancesClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// Instantiate a zoneOperationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ZoneOperationsClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update/uncomment these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-c1">// The ID of the project where you want to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getProjectId</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// The zone in which to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'us-central1-a'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// The name of the instance to create.</span> <span class="devsite-syntax-c1">// const instanceName = 'instance-01';</span> <span class="devsite-syntax-c1">// The name of the reservation to consume.</span> <span class="devsite-syntax-c1">// Ensure that the specificReservationRequired field in reservation properties is set to true.</span> <span class="devsite-syntax-c1">// const reservationName = 'reservation-01';</span> <span class="devsite-syntax-c1">// Machine type to use for VM.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'n1-standard-4'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Create instance to consume a specific single-project reservation</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToConsumeSingleProjectReservation</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Describe the size and source image of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Ensure that the VM's properties match the reservation's VM properties,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// including the zone, machine type (machine family, vCPUs, and memory),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// minimum CPU platform, GPU amount and type, and local SSD interface and size</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Disk</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">boot</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">autoDelete</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">type</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PERSISTENT'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">initializeParams</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">diskSizeGb</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'10'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'projects/debian-cloud/global/images/family/debian-12'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define networkInterface</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'global/networks/default'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define reservationAffinity</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeReservationType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'SPECIFIC_RESERVATION'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">key</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'compute.googleapis.com/reservation-name'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">values</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">reservationName</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create an instance</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-sb">`zones/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">/machineTypes/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">`</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">minCpuPlatform</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'Intel Skylake'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disks</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterfaces</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">insert</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceResource</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">let</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">latestResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the create instance operation to complete.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'DONE'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">wait</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">split</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'/'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">pop</span><span class="devsite-syntax-p">(),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`Instance </span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb"> created.`</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToConsumeSingleProjectReservation</span><span class="devsite-syntax-p">();</span></code></pre></devsite-code> </div> </section> <section><h3 id="python_1" data-text=" Python " tabindex="-1"> Python </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_single_project_reservation.py/HEAD/compute_consume_single_project_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_single_project_reservation.py" feedback-context="{"language": "python", "region_tag": "compute_consume_single_project_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_single_project_reservation.py"}" feedback-product="1634365" feedback-bucket="infraops" language="python" data-github-path="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_single_project_reservation.py" data-git-revision="HEAD" data-region-tag="compute_consume_single_project_reservation" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">__future__</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">annotations</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">sys</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">typing</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">Any</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.api_core.extended_operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">ExtendedOperation</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.cloud</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">compute_v1</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">ExtendedOperation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"operation"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">int</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-mi">300</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">Any</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Waits for the extended (long-running) operation to complete.</span> <span class="devsite-syntax-sd"> If the operation is successful, it will return its result.</span> <span class="devsite-syntax-sd"> If the operation ends with an error, an exception will be raised.</span> <span class="devsite-syntax-sd"> If there were any warnings during the execution of the operation</span> <span class="devsite-syntax-sd"> they will be printed to sys.stderr.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> operation: a long-running operation you want to wait on.</span> <span class="devsite-syntax-sd"> verbose_name: (optional) a more verbose name of the operation,</span> <span class="devsite-syntax-sd"> used only during error and warning reporting.</span> <span class="devsite-syntax-sd"> timeout: how long (in seconds) to wait for operation to finish.</span> <span class="devsite-syntax-sd"> If None, wait indefinitely.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> Whatever the operation.result() returns.</span> <span class="devsite-syntax-sd"> Raises:</span> <span class="devsite-syntax-sd"> This method will raise the exception received from `operation.exception()`</span> <span class="devsite-syntax-sd"> or RuntimeError if there is no exception set, but there is an `error_code`</span> <span class="devsite-syntax-sd"> set for the `operation`.</span> <span class="devsite-syntax-sd"> In case of an operation taking longer than `timeout` seconds to complete,</span> <span class="devsite-syntax-sd"> a `concurrent.futures.TimeoutError` will be raised.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">result</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Error during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: [Code: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">]: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Operation ID: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">raise</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">exception</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-ow">or</span> <span class="devsite-syntax-ne">RuntimeError</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Warnings during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">:</span><span class="devsite-syntax-se">\n</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">for</span> <span class="devsite-syntax-n">warning</span> <span class="devsite-syntax-ow">in</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">" - </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">consume_specific_single_project_reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"n1-standard-1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"Intel Ivy Bridge"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Creates a specific reservation in a single project and launches a VM</span> <span class="devsite-syntax-sd"> that consumes the newly created reservation.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> project_id (str): The ID of the Google Cloud project.</span> <span class="devsite-syntax-sd"> zone (str): The zone to create the reservation.</span> <span class="devsite-syntax-sd"> reservation_name (str): The name of the reservation to create.</span> <span class="devsite-syntax-sd"> instance_name (str): The name of the instance to create.</span> <span class="devsite-syntax-sd"> machine_type (str): The machine type for the instance.</span> <span class="devsite-syntax-sd"> min_cpu_platform (str): The minimum CPU platform for the instance.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">instance_properties</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUAllocationReservedInstanceProperties</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">reservation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">specific_reservation</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUReservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">count</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-c1"># Only VMs that target the reservation by name can consume from this reservation</span> <span class="devsite-syntax-n">specific_reservation_required</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Create a reservation client</span> <span class="devsite-syntax-n">client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationsClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_resource</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"Reservation creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance_name</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"zones/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">/machineTypes/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-c1"># Set the reservation affinity to target the specific reservation</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">reservation_affinity</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">consume_reservation_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"SPECIFIC_RESERVATION"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of reservation to consume</span> <span class="devsite-syntax-n">key</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Key for the reservation</span> <span class="devsite-syntax-n">values</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-c1"># Reservation name to consume</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Define the disks for the instance</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">disks</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">boot</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Indicates that this is a boot disk</span> <span class="devsite-syntax-n">auto_delete</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The disk will be deleted when the instance is deleted</span> <span class="devsite-syntax-n">initialize_params</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">source_image</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">disk_size_gb</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">network_interfaces</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">network</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"global/networks/default"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The network to use</span> <span class="devsite-syntax-n">access_configs</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"External NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Name of the access configuration</span> <span class="devsite-syntax-nb">type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ONE_TO_ONE_NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of access configuration</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># Create a request to insert the instance</span> <span class="devsite-syntax-n">request</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">project</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">project_id</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">instance_resource</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-n">vm_client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"instance creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Instance </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2"> with specific reservation created successfully."</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">)</span> </code></pre></devsite-code> </div> </section> <section><h3 id="rest_1" data-text=" REST " tabindex="-1"> REST </h3><ol> <li><p>Create a reservation named <code translate="no" dir="ltr">reservation-02</code> with the <code translate="no" dir="ltr">specificReservationRequired</code> field set to <code translate="no" dir="ltr">true</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations { "name":"reservation-02", "specificReservation":{ "count":"10", "instanceProperties":{ "machineType":"n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", } }, <strong>"specificReservationRequired": true</strong> } </code></pre></devsite-code></li> <li><p>Create a VM that targets <code translate="no" dir="ltr">reservation-02</code> by name by using the <code translate="no" dir="ltr">reservationAffinity</code> field.</p> <p>Ensure that the VM's properties match the reservation's VM properties, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances { "name": "instance-2", "machineType": "zones/us-central1-a/machineTypes/n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/debian-clouid/global/images/family/debian-12" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], <strong>"reservationAffinity": { "consumeReservationType": "SPECIFIC_RESERVATION", "key": "compute.googleapis.com/reservation-name", "values": [ "reservation-02" ] }</strong> } </code></pre></devsite-code></li> </ol></section> </div> <h4 id="consuming_a_specific_shared_reservation" data-text="Consume a specific shared reservation" tabindex="-1">Consume a specific shared reservation</h4> <p>To consume a specific shared reservation, select one of the following options:</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="console_2" data-text="Console" tabindex="-1">Console</h3><ol> <li><p>To create a shared reservation with resources that can only be used by VMs that specifically target this reservation by name, follow these steps:</p> <ol> <li><p>Select one of the following options:</p> <ul> <li><p>To create standalone reservation, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Reservations</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/reservations" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Reservations</a> </p></li> <li><p>On the <strong>On-demand reservations</strong> tab (default), click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Create reservation</strong>.</p> <p>The <strong>Create a reservation</strong> page opens.</p></li> </ol></li> <li><p>To create a reservation that is attached to a commitment, do the following:</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Committed use discounts</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/commitments" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createReservation" class="button button-primary">Go to Committed use discounts</a> </p></li> <li><p>Click <span class="material-icons" aria-hidden="true" translate="no">add_box</span> <strong>Purchase commitment</strong>.</p> <p>The <strong>Purchase a committed use discount</strong> page opens.</p></li> <li><p>Specify the commitment properties. Then, in the <strong>Reservations</strong> section, click <strong>Add an item</strong>.</p> <p>The <strong>Add a new reservation</strong> section appears.</p> <p>For more information about how to purchase a commitment with an attached reservation, see <a href="/compute/docs/instances/reservations-with-commitments#purchasing_a_commitment_with_a_reservation">Purchase commitments with attached reservations</a>.</p></li> </ol></li> </ul></li> <li><p>In the <strong>Name</strong> field, enter a name for your reservation. For this example, enter <code translate="no" dir="ltr">reservation-02</code>.</p></li> <li><p>Choose the <strong>Region</strong> and <strong>Zone</strong> where you want to reserve resources. For this example, select <code translate="no" dir="ltr">us-central1</code> as the region and <code translate="no" dir="ltr">us-central1-a</code> as the zone.</p></li> <li><p>To specify that your reservation is a shared reservation, select <strong>Shared</strong> as the <strong>Share type</strong>.</p></li> <li><p>Click <span class="material-icons" aria-hidden="true" translate="no">add</span> <strong>Add projects</strong> and select the projects from the current project's organization that you want to share the reservation with.</p></li> <li><p>In the <strong>Use with VM instance</strong> section, select <strong>Select specific reservation</strong>, so that only matching VMs that specifically target this reservation by name can use this reservation.</p></li> <li><p>In the <strong>Number of VM instances</strong> field, enter the number of VMs that you want to reserve. For this example, enter <code translate="no" dir="ltr">10</code>.</p></li> <li><p>Specify the resources that you want to reserve for each VM:</p> <ul> <li>If you want to reserve VMs that match an existing <a href="/compute/docs/instance-templates/create-instance-templates">instance template</a>, select <strong>Use instance template</strong> and select an instance template from the list.</li> <li>Otherwise, select <strong>Specify machine type</strong> and specify the following: <ol> <li>In the <strong>Machine family</strong>, <strong>Series</strong>, and <strong>Machine type</strong> fields, select a machine family, series, and machine type.</li> <li>Optional: Specify a minimum CPU platform and/or GPUs: <ol> <li>To expand the <strong>CPU Platform and GPU</strong> section, click the <span class="material-icons" aria-hidden="true" translate="no">expand_more</span> expander arrow.</li> <li>Optional: To specify a minimum CPU platform, in the <strong>CPU Platform</strong> list, select an option.</li> <li>Optional: To add GPUs, click <span class="material-icons" aria-hidden="true" translate="no">add</span> <strong>Add GPU</strong>. Then, in the <strong>GPU type</strong> and <strong>Number of GPUs</strong> fields, select the type and number of GPUs for each VM.</li> </ol></li> <li>Optional: Add local SSDs: <ol> <li>In the <strong>Number of disks</strong> field, select the number of local SSDs for each VM.</li> <li>In the <strong>Interface type</strong> field, select the interface for the local SSDs.</li> </ol></li> </ol></li> </ul> <p>For this example, select <strong>Specify machine type</strong>. Then select the <code translate="no" dir="ltr">n2-standard-32</code> machine type for the <code translate="no" dir="ltr">General-purpose</code> machine family and <code translate="no" dir="ltr">N2</code> series and select the minimum CPU platform <code translate="no" dir="ltr">Intel Cascade Lake</code>. 1. Finish creating the reservation:</p> <ul> <li><p>If you are creating standalone reservation, click <strong>Create</strong>.</p></li> <li><p>If you are creating a reservation that is attached to a commitment:</p> <ol> <li>To finish specifying the properties for this reservation, click <strong>Done</strong>.</li> <li>To finish creating the commitment and attached reservations, click <strong>Purchase</strong>.</li> </ol></li> </ul></li> </ol></li> <li><p>In the same project or a project that the reservation is shared with, create a VM that targets that specific reservation by name.</p> <p>Ensure that the VM's properties match the VM properties of that specific reservation, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Create an instance</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/instancesAdd" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="useInstancesSpecificReservation" track-metadata-end-goal="createInstance" class="button button-primary">Go to Create an instance</a> </p> <p>The <strong>Create an instance page</strong> opens.</p></li> <li><p>Specify a <strong>Name</strong> for your VM.</p></li> <li><p>In the following sections, select a configuration that exactly matches all the properties of your reservation, including any optional properties. For this example, you must match the following VM properties with <code translate="no" dir="ltr">reservation-02</code>:</p> <ul> <li><strong>Region</strong>: <code translate="no" dir="ltr">us-central1</code></li> <li><strong>Zone</strong>: <code translate="no" dir="ltr">us-central1-a</code></li> <li><strong>Machine type</strong>: <code translate="no" dir="ltr">n2-standard-32</code></li> <li>Minimum <strong>CPU platform</strong>: <code translate="no" dir="ltr">Intel Cascade Lake</code></li> <li><strong>GPUs</strong>: none</li> <li><strong>Local SSDs</strong>: none</li> </ul></li> <li><p>Expand the <strong>Advanced options</strong> section and then expand the <strong>Management</strong> section. In the <strong>Reservations</strong> list, select <strong>Select specific reservation</strong>, and then do the following:</p> <ol> <li>Select a <strong>Reservation project</strong> that has reservations shared with your current project. For this example, select the project that you used to create <code translate="no" dir="ltr">reservation-02</code>.</li> <li>Select the <strong>Reservation name</strong> of the shared reservation that you want this VM to consume. For this example, select <code translate="no" dir="ltr">reservation-02</code>.</li> </ol></li> <li><p>To create the VM, click <strong>Create</strong>.</p></li> </ol></li> </ol></section> <section><h3 id="gcloud_2" data-text="gcloud" tabindex="-1">gcloud</h3><ol> <li><p>Create a reservation named <code translate="no" dir="ltr">reservation-02</code> with the <code translate="no" dir="ltr">--require-specific-reservation</code> flag. These reserved resources can be used only by VMs that specifically target this reservation by name.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute reservations create reservation-02 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --vm-count=10 \ --zone=us-central1-a \ --project=my-owner-project \ --share-setting=projects \ --share-with=project-1,project-2 \ <strong>--require-specific-reservation</strong> </code></pre></devsite-code></li> <li><p>Create a VM that targets <code translate="no" dir="ltr">reservation-02</code> by name by using the <code translate="no" dir="ltr">--reservation-affinity</code> and <code translate="no" dir="ltr">--reservation</code> flags. To consume this reservation from any consumer projects that this reservation is shared with, you must also specify the project that created the reservation, <code translate="no" dir="ltr">my-owner-project</code>.</p> <p>Ensure that the VM's properties match the reservation's VM properties, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute instances create instance-2 \ --machine-type=n2-standard-32 \ --min-cpu-platform="Intel Cascade Lake" \ --zone=us-central1-a \ <strong>--reservation-affinity=specific \ --reservation=projects/my-owner-project/reservations/reservation-02</strong> </code></pre></devsite-code></li> </ol></section> <section><h3 id="go_2" data-text=" Go " tabindex="-1"> Go </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/compute/reservations/consume_specific_shared_reservation.go/HEAD/compute_consume_specific_shared_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_specific_shared_reservation.go" feedback-context="{"language": "go", "region_tag": "compute_consume_specific_shared_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/consume_specific_shared_reservation.go"}" feedback-product="1634365" feedback-bucket="infraops" language="go" data-github-path="GoogleCloudPlatform/golang-samples/compute/reservations/consume_specific_shared_reservation.go" data-git-revision="HEAD" data-region-tag="compute_consume_specific_shared_reservation" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1/computepb"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google.golang.org/protobuf/proto"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// consumeSpecificSharedReservation consumes specific shared reservation in particular zone</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeSpecificSharedReservation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceClientInterface</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">baseProjectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// client, err := compute.NewInstancesRESTClient(ctx)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// projectID := "your_project_id". Project where reservation is created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// baseProjectId := "shared_project_id". Project where instance will be consumed and created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// zone := "us-west3-a"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// reservationName := "your_reservation_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// instanceName := "your_instance_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Sprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n2-standard-32"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-12"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sharedReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Sprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"projects/%s/reservations/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">baseProjectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InsertInstanceRequest</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Project</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Zone</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceResource</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Disks</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InitializeParams</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">DiskSizeGb</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Int64</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">SourceImage</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">AutoDelete</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Boot</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Type</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk_PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">()),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MachineType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MinCpuPlatform</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Intel Cascade Lake"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">NetworkInterfaces</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"global/networks/default"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// specifies particular reservation, which should be consumed</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ConsumeReservationType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"SPECIFIC_RESERVATION"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Key</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Values</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-nx">sharedReservation</span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">client</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create instance: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Wait</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to wait for the operation: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Instance created from shared reservation\n"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section><h3 id="java_2" data-text=" Java " tabindex="-1"> Java </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeSpecificSharedReservation.java/HEAD/compute_consume_specific_shared_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeSpecificSharedReservation.java" feedback-context="{"language": "java", "region_tag": "compute_consume_specific_shared_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/ConsumeSpecificSharedReservation.java"}" feedback-product="1634365" feedback-bucket="infraops" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/ConsumeSpecificSharedReservation.java" data-git-revision="HEAD" data-region-tag="compute_consume_specific_shared_reservation" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity.ConsumeReservationType.SPECIFIC_RESERVATION</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.api.gax.longrunning.OperationFuture</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDisk</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDiskInitializeParams</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InsertInstanceRequest</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Instance</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstancesClient</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.NetworkInterface</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Operation</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.ExecutionException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeUnit</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeoutException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">ConsumeSpecificSharedReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Project ID or project number of the Cloud project you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_PROJECT_ID"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the zone the reservation is located.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1-a"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the reservation you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_RESERVATION_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the VM instance you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_INSTANCE_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// machineType: machine type of the VM being created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For a list of machine types, see https://cloud.google.com/compute/docs/machine-types</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n1-standard-4"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// sourceImage: path to the operating system image to mount.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For details about images you can mount, see https://cloud.google.com/compute/docs/images</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// diskSizeGb: storage size of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">10L</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// networkName: network interface to associate with the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"default"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Minimum CPU platform of the instances.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Intel Skylake"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create a virtual machine targeted with the reserveAffinity field.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Ensure that the VM's properties match the reservation's VM properties.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">createInstanceAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">format</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// To consume this reservation from any consumer projects that this reservation is shared with,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// you must also specify the owner project of the reservation - the path to the reservation.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationPath</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">format</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"projects/%s/reservations/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs to be created</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">create</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setBoot</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setAutoDelete</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">Type</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDeviceName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"disk-1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setSourceImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskSizeGb</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setConsumeReservationType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">SPECIFIC_RESERVATION</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setKey</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Set specific reservation</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addValues</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationPath</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMachineType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addDisks</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addNetworkInterfaces</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMinCpuPlatform</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">minCpuPlatform</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setReservationAffinity</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProject</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setZone</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInstanceResource</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">OperationFuture<Operation</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span>><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">insertAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeUnit</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">MINUTES</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">hasError</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section><h3 id="python_2" data-text=" Python " tabindex="-1"> Python </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_specific_shared_reservation.py/HEAD/compute_consume_specific_shared_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_specific_shared_reservation.py" feedback-context="{"language": "python", "region_tag": "compute_consume_specific_shared_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/consume_specific_shared_reservation.py"}" feedback-product="1634365" feedback-bucket="infraops" language="python" data-github-path="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/consume_specific_shared_reservation.py" data-git-revision="HEAD" data-region-tag="compute_consume_specific_shared_reservation" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">__future__</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">annotations</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">sys</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">typing</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">Any</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.api_core.extended_operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">ExtendedOperation</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.cloud</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">compute_v1</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">ExtendedOperation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"operation"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">int</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-mi">300</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">Any</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Waits for the extended (long-running) operation to complete.</span> <span class="devsite-syntax-sd"> If the operation is successful, it will return its result.</span> <span class="devsite-syntax-sd"> If the operation ends with an error, an exception will be raised.</span> <span class="devsite-syntax-sd"> If there were any warnings during the execution of the operation</span> <span class="devsite-syntax-sd"> they will be printed to sys.stderr.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> operation: a long-running operation you want to wait on.</span> <span class="devsite-syntax-sd"> verbose_name: (optional) a more verbose name of the operation,</span> <span class="devsite-syntax-sd"> used only during error and warning reporting.</span> <span class="devsite-syntax-sd"> timeout: how long (in seconds) to wait for operation to finish.</span> <span class="devsite-syntax-sd"> If None, wait indefinitely.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> Whatever the operation.result() returns.</span> <span class="devsite-syntax-sd"> Raises:</span> <span class="devsite-syntax-sd"> This method will raise the exception received from `operation.exception()`</span> <span class="devsite-syntax-sd"> or RuntimeError if there is no exception set, but there is an `error_code`</span> <span class="devsite-syntax-sd"> set for the `operation`.</span> <span class="devsite-syntax-sd"> In case of an operation taking longer than `timeout` seconds to complete,</span> <span class="devsite-syntax-sd"> a `concurrent.futures.TimeoutError` will be raised.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">result</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Error during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: [Code: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">]: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Operation ID: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">raise</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">exception</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-ow">or</span> <span class="devsite-syntax-ne">RuntimeError</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Warnings during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">:</span><span class="devsite-syntax-se">\n</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">for</span> <span class="devsite-syntax-n">warning</span> <span class="devsite-syntax-ow">in</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">" - </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">consume_specific_shared_project_reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">owner_project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">shared_project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"n1-standard-1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"Intel Ivy Bridge"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Creates a specific reservation in a single project and launches a VM</span> <span class="devsite-syntax-sd"> that consumes the newly created reservation.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> owner_project_id (str): The ID of the Google Cloud project.</span> <span class="devsite-syntax-sd"> shared_project_id: The ID of the owner project of the reservation in the same zone.</span> <span class="devsite-syntax-sd"> zone (str): The zone to create the reservation.</span> <span class="devsite-syntax-sd"> reservation_name (str): The name of the reservation to create.</span> <span class="devsite-syntax-sd"> instance_name (str): The name of the instance to create.</span> <span class="devsite-syntax-sd"> machine_type (str): The machine type for the instance.</span> <span class="devsite-syntax-sd"> min_cpu_platform (str): The minimum CPU platform for the instance.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">instance_properties</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUAllocationReservedInstanceProperties</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">min_cpu_platform</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">reservation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">specific_reservation</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AllocationSpecificSKUReservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">count</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_properties</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-c1"># Only VMs that target the reservation by name can consume from this reservation</span> <span class="devsite-syntax-n">specific_reservation_required</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">share_settings</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ShareSettings</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">share_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"SPECIFIC_PROJECTS"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">project_map</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-n">shared_project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ShareSettingsProjectConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">shared_project_id</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">},</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Create a reservation client</span> <span class="devsite-syntax-n">client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationsClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">owner_project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">reservation_resource</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">reservation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"Reservation creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance_name</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"zones/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">/machineTypes/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">min_cpu_platform</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-c1"># Set the reservation affinity to target the specific reservation</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">reservation_affinity</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">consume_reservation_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"SPECIFIC_RESERVATION"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of reservation to consume</span> <span class="devsite-syntax-n">key</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"compute.googleapis.com/reservation-name"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># To consume this reservation from any consumer projects, specify the owner project of the reservation</span> <span class="devsite-syntax-n">values</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"projects/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">owner_project_id</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">/reservations/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">reservation_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Define the disks for the instance</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">disks</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">boot</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Indicates that this is a boot disk</span> <span class="devsite-syntax-n">auto_delete</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The disk will be deleted when the instance is deleted</span> <span class="devsite-syntax-n">initialize_params</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">source_image</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">disk_size_gb</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">network_interfaces</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">network</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"global/networks/default"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The network to use</span> <span class="devsite-syntax-n">access_configs</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"External NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Name of the access configuration</span> <span class="devsite-syntax-nb">type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ONE_TO_ONE_NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of access configuration</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># Create a request to insert the instance</span> <span class="devsite-syntax-n">request</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-c1"># The instance will be created in the shared project</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">project</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">shared_project_id</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">instance_resource</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-n">vm_client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"instance creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Instance </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2"> from project </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">owner_project_id</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2"> created."</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># The instance is created in the shared project, so we return it from there.</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">shared_project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">)</span> </code></pre></devsite-code> </div> </section> <section><h3 id="rest_2" data-text=" REST " tabindex="-1"> REST </h3><ol> <li><p>Create a reservation named <code translate="no" dir="ltr">reservation-02</code> with the <code translate="no" dir="ltr">specificReservationRequired</code> field set to <code translate="no" dir="ltr">true</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/my-owner-project/zones/us-central1-a/reservations { "name":"reservation-02", "specificReservation":{ "count":"10", "instanceProperties":{ "machineType":"n2-standard-32", "minCpuPlatform": "Intel Cascade Lake" } }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, <strong>"specificReservationRequired": true</strong> } </code></pre></devsite-code></li> <li><p>Create a VM that targets <code translate="no" dir="ltr">reservation-02</code> by name by using the <code translate="no" dir="ltr">reservationAffinity</code> field. To consume this reservation from any consumer projects that this reservation is shared with, you must also specify the owner project of the reservation, <code translate="no" dir="ltr">my-owner-project</code>.</p> <p>Ensure that the VM's properties match the reservation's VM properties, including the zone, machine type (machine family, vCPUs, and memory), minimum CPU platform, GPU amount and type, and local SSD interface and size.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/project-2/zones/us-central1-a/instances { "name": "instance-2", "machineType": "zones/us-central1-a/machineTypes/n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/debian-clouid/global/images/family/debian-12" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], <strong>"reservationAffinity": { "consumeReservationType": "SPECIFIC_RESERVATION", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/my-owner-project/reservations/reservation-02" ] }</strong> } </code></pre></devsite-code></li> </ol></section> </div> <h3 id="creating_instances_without_consuming_reservations" data-text="Create VMs without consuming reservations" tabindex="-1">Create VMs without consuming reservations</h3> <p>If you create an <a href="/compute/docs/instances/reservations-overview#consumption-type">automatically consumed reservation</a>, then any running VMs with matching properties in your project can consume the reservation. To prevent one or more of your VMs from consuming the reservation, do the following:</p> <ul> <li><p>Set the reservation affinity property of the VMs to explicitly not consume any reservations as described in this section.</p></li> <li><p>Make sure that your VMs don't match the VM properties of the reservation.</p></li> </ul> <p>To create VMs that explicitly don't consume reservations, select one of the following methods:</p> <ul> <li><p><a href="#create-vm-not-consume-reservations">Create a VM to not consume reservations</a>.</p></li> <li><p><a href="#create-instance-template-not-consume-reservations">Create an instance template to not consume reservations</a>.</p></li> </ul> <h4 id="create-vm-not-consume-reservations" data-text="Create a VM to not consume reservations" tabindex="-1">Create a VM to not consume reservations</h4> <p>To create a VM that explicitly doesn't consume reservations, select one of the following options:</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="console_3" data-text=" Console " tabindex="-1"> Console </h3><ol> <li><p>In the Google Cloud console, go to the <strong>Create an instance</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/instancesAdd" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="createInstanceWithoutConsumingReservations" track-metadata-end-goal="createInstance" class="button button-primary">Go to Create an instance</a> </p></li> <li><p>In the <strong>Name</strong> field, enter a name for the VM.</p></li> <li><p>In the <strong>Region</strong> and <strong>Zone</strong> lists, select the region and zone in which to create the VM.</p></li> <li><p>In the <strong>Machine configuration</strong> section, specify the machine type to use for the VM.</p></li> <li><p>Expand the <strong>Advanced options</strong> section, and then do the following:</p> <ol> <li><p>Expand the <strong>Management</strong> section.</p></li> <li><p>In the <strong>Reservations</strong> section, in the <strong>Application policy</strong> list, select <strong>Don't use</strong>.</p></li> </ol></li> <li><p>Click <strong>Create</strong>.</p></li> </ol></section> <section><h3 id="gcloud_3" data-text=" gcloud " tabindex="-1"> gcloud </h3><p>To create a VM that explicitly doesn't consume reservations, use the <a href="/sdk/gcloud/reference/compute/instances/create"><code translate="no" dir="ltr">gcloud compute instances create</code> command</a> with the <code translate="no" dir="ltr">--reservation-affinity=none</code> flag.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute instances create <var translate="no">VM_NAME</var> \ --machine-type=<var translate="no">MACHINE_TYPE</var> \ --reservation-affinity=none \ --zone=<var translate="no">ZONE</var> </code></pre></devsite-code> <p>Replace the following:</p> <ul> <li><p><code translate="no" dir="ltr"><var translate="no">VM_NAME</var></code>: the name of the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">MACHINE_TYPE</var></code>: the machine type to use for the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">ZONE</var></code>: the zone in which to create the VM.</p></li> </ul></section> <section><h3 id="go_3" data-text=" Go " tabindex="-1"> Go </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/compute/reservations/create_instance_not_consume_reservation.go/HEAD/compute_instance_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/create_instance_not_consume_reservation.go" feedback-context="{"language": "go", "region_tag": "compute_instance_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/create_instance_not_consume_reservation.go"}" feedback-product="1634365" feedback-bucket="infraops" language="go" data-github-path="GoogleCloudPlatform/golang-samples/compute/reservations/create_instance_not_consume_reservation.go" data-git-revision="HEAD" data-region-tag="compute_instance_not_consume_reservation" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1/computepb"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google.golang.org/protobuf/proto"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// createInstanceNotConsumeReservation creates VM, without consuming reservation</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">createInstanceNotConsumeReservation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Sprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n2-standard-32"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-12"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewInstancesRESTClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NewInstancesRESTClient: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">defer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Close</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InsertInstanceRequest</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Project</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Zone</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceResource</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Disks</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InitializeParams</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">DiskSizeGb</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Int64</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">SourceImage</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">AutoDelete</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Boot</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Type</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk_PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">()),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MachineType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MinCpuPlatform</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Intel Cascade Lake"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">NetworkInterfaces</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"global/networks/default"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ConsumeReservationType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NO_RESERVATION"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create instance: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Wait</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to wait for the operation: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Instance created\n"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section><h3 id="java_3" data-text=" Java " tabindex="-1"> Java </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/CreateInstanceWithoutConsumingReservation.java/HEAD/compute_instance_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/CreateInstanceWithoutConsumingReservation.java" feedback-context="{"language": "java", "region_tag": "compute_instance_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/CreateInstanceWithoutConsumingReservation.java"}" feedback-product="1634365" feedback-bucket="infraops" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/CreateInstanceWithoutConsumingReservation.java" data-git-revision="HEAD" data-region-tag="compute_instance_not_consume_reservation" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity.ConsumeReservationType.NO_RESERVATION</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.api.gax.longrunning.OperationFuture</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDisk</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDiskInitializeParams</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InsertInstanceRequest</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Instance</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstancesClient</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.NetworkInterface</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Operation</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.ExecutionException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeUnit</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeoutException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">CreateInstanceWithoutConsumingReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Project ID or project number of the Cloud project you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_PROJECT_ID"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the zone you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"us-central1-a"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the VM instance you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_INSTANCE_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// machineType: machine type of the VM being created.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * This value uses the format zones/{zone}/machineTypes/{type_name}.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For a list of machine types, see https://cloud.google.com/compute/docs/machine-types</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"n1-standard-1"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// sourceImage: path to the operating system image to mount.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// * For details about images you can mount, see https://cloud.google.com/compute/docs/images</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// diskSizeGb: storage size of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">10L</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// networkName: network interface to associate with the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"default"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">createInstanceWithoutConsumingReservationAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create a virtual machine that explicitly doesn't consume reservations</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">createInstanceWithoutConsumingReservationAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">format</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"zones/%s/machineTypes/%s"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineTypeName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs to be created</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">create</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setBoot</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setAutoDelete</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">Type</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">PERSISTENT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDeviceName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"disk-1"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setSourceImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskSizeGb</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">diskSizeGb</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setConsumeReservationType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">NO_RESERVATION</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMachineType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addDisks</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">disk</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addNetworkInterfaces</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setReservationAffinity</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProject</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setZone</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInstanceResource</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceResource</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">OperationFuture<Operation</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span>><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">insertAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceRequest</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the operation to complete.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeUnit</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">MINUTES</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">hasError</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section><h3 id="node.js_2" data-text=" Node.js " tabindex="-1"> Node.js </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToNotConsumeReservation.js/HEAD/compute_instance_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToNotConsumeReservation.js" feedback-context="{"language": "nodejs", "region_tag": "compute_instance_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createInstanceToNotConsumeReservation.js"}" feedback-product="1634365" feedback-bucket="infraops" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createInstanceToNotConsumeReservation.js" data-git-revision="HEAD" data-region-tag="compute_instance_not_consume_reservation" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-c1">// Import the Compute library</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/compute'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">protos</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">cloud</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">v1</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Instantiate a reservationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstancesClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// Instantiate a zoneOperationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ZoneOperationsClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update/uncomment these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-c1">// The ID of the project where you want to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getProjectId</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// The zone in which to create instance.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'us-central1-a'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// The name of the instance to create.</span> <span class="devsite-syntax-c1">// const instanceName = 'instance-01';</span> <span class="devsite-syntax-c1">// Machine type to use for VM.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'n1-standard-4'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Create a VM that explicitly doesn't consume reservations</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToNotConsumeReservation</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Describe the size and source image of the boot disk to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Disk</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">boot</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">autoDelete</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">type</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PERSISTENT'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">initializeParams</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">diskSizeGb</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'10'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'projects/debian-cloud/global/images/family/debian-12'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define networkInterface</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'global/networks/default'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define reservationAffinity</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeReservationType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'NO_RESERVATION'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create an instance</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Instance</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-sb">`zones/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">/machineTypes/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">`</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">minCpuPlatform</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'Intel Skylake'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disks</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterfaces</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">networkInterface</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instancesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">insert</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceResource</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instance</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">let</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">latestResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the create instance operation to complete.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'DONE'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zoneOperationsClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">wait</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">zone</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">split</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'/'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">pop</span><span class="devsite-syntax-p">(),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`Instance </span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">instanceName</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb"> created.`</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateInstanceToNotConsumeReservation</span><span class="devsite-syntax-p">();</span></code></pre></devsite-code> </div> </section> <section><h3 id="python_3" data-text=" Python " tabindex="-1"> Python </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/create_not_consume_reservation.py/HEAD/compute_instance_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/create_not_consume_reservation.py" feedback-context="{"language": "python", "region_tag": "compute_instance_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/create_not_consume_reservation.py"}" feedback-product="1634365" feedback-bucket="infraops" language="python" data-github-path="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/create_not_consume_reservation.py" data-git-revision="HEAD" data-region-tag="compute_instance_not_consume_reservation" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">__future__</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">annotations</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">sys</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">typing</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">Any</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.api_core.extended_operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">ExtendedOperation</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.cloud</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">compute_v1</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">ExtendedOperation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"operation"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">int</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-mi">300</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">Any</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Waits for the extended (long-running) operation to complete.</span> <span class="devsite-syntax-sd"> If the operation is successful, it will return its result.</span> <span class="devsite-syntax-sd"> If the operation ends with an error, an exception will be raised.</span> <span class="devsite-syntax-sd"> If there were any warnings during the execution of the operation</span> <span class="devsite-syntax-sd"> they will be printed to sys.stderr.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> operation: a long-running operation you want to wait on.</span> <span class="devsite-syntax-sd"> verbose_name: (optional) a more verbose name of the operation,</span> <span class="devsite-syntax-sd"> used only during error and warning reporting.</span> <span class="devsite-syntax-sd"> timeout: how long (in seconds) to wait for operation to finish.</span> <span class="devsite-syntax-sd"> If None, wait indefinitely.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> Whatever the operation.result() returns.</span> <span class="devsite-syntax-sd"> Raises:</span> <span class="devsite-syntax-sd"> This method will raise the exception received from `operation.exception()`</span> <span class="devsite-syntax-sd"> or RuntimeError if there is no exception set, but there is an `error_code`</span> <span class="devsite-syntax-sd"> set for the `operation`.</span> <span class="devsite-syntax-sd"> In case of an operation taking longer than `timeout` seconds to complete,</span> <span class="devsite-syntax-sd"> a `concurrent.futures.TimeoutError` will be raised.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">result</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Error during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: [Code: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">]: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Operation ID: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">raise</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">exception</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-ow">or</span> <span class="devsite-syntax-ne">RuntimeError</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Warnings during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">:</span><span class="devsite-syntax-se">\n</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">for</span> <span class="devsite-syntax-n">warning</span> <span class="devsite-syntax-ow">in</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">" - </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">create_vm_not_consume_reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"n2-standard-2"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""Creates a VM that explicitly doesn't consume reservations</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> project_id (str): The ID of the Google Cloud project.</span> <span class="devsite-syntax-sd"> zone (str): The zone where the VM will be created.</span> <span class="devsite-syntax-sd"> instance_name (str): The name of the instance to create.</span> <span class="devsite-syntax-sd"> machine_type (str, optional): The machine type for the instance.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> compute_v1.Instance: The created instance.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">Instance</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance_name</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"zones/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">/machineTypes/</span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">disks</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">boot</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Indicates that this is a boot disk</span> <span class="devsite-syntax-n">auto_delete</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The disk will be deleted when the instance is deleted</span> <span class="devsite-syntax-n">initialize_params</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">source_image</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">disk_size_gb</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">network_interfaces</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">network</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"global/networks/default"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The network to use</span> <span class="devsite-syntax-n">access_configs</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"External NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Name of the access configuration</span> <span class="devsite-syntax-nb">type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ONE_TO_ONE_NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Type of access configuration</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># Set the reservation affinity to not consume any reservation</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">reservation_affinity</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">consume_reservation_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"NO_RESERVATION"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># Prevents the instance from consuming reservations</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1"># Create a request to insert the instance</span> <span class="devsite-syntax-n">request</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InsertInstanceRequest</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">zone</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">project</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">project_id</span> <span class="devsite-syntax-n">request</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">instance_resource</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">instance</span> <span class="devsite-syntax-n">vm_client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstancesClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">request</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"Instance creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Creating the </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2"> instance in </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">..."</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">vm_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">zone</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">zone</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">instance_name</span><span class="devsite-syntax-p">)</span> </code></pre></devsite-code> </div> </section> <section><h3 id="rest_3" data-text=" REST " tabindex="-1"> REST </h3><p>To create a VM that explicitly doesn't consume reservations, make a <code translate="no" dir="ltr">POST</code> request to the <a href="/compute/docs/reference/rest/v1/instances/insert"><code translate="no" dir="ltr">instances.insert</code> method</a>. In the request body, include the <code translate="no" dir="ltr">consumeReservationType</code> field set to <code translate="no" dir="ltr">NO_RESERVATION</code>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/<var translate="no">PROJECT_ID</var>/zones/<var translate="no">ZONE</var>/instances { "name": "<var translate="no">VM_NAME</var>", "machineType": "zones/<var translate="no">ZONE</var>/machineTypes/<var translate="no">MACHINE_TYPE</var>", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/<var translate="no">IMAGE_PROJECT</var>/global/images/<var translate="no">IMAGE</var>" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } </code></pre></devsite-code> <p>Replace the following:</p> <ul> <li><p><code translate="no" dir="ltr"><var translate="no">PROJECT_ID</var></code>: the ID of the project in which to create the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">ZONE</var></code>: the zone in which to create the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">VM_NAME</var></code>: the name of the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">MACHINE_TYPE</var></code>: the machine type to use for the VM.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">IMAGE_PROJECT</var></code>: the image project that contains the OS image—for example, <code translate="no" dir="ltr">debian-cloud</code>. For more information about the supported image projects, see <a href="/compute/docs/images#os-compute-support">Public images</a>.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">IMAGE</var></code>: specify one of the following:</p> <ul> <li><p>A specific version of the OS image—for example, <code translate="no" dir="ltr">debian-12-bookworm-v20240617</code>.</p></li> <li><p>An <a href="/compute/docs/images/os-details">image family</a>, which must be formatted as <code translate="no" dir="ltr">family/<var translate="no">IMAGE_FAMILY</var></code>. This specifies the most recent, non-deprecated OS image. For example, if you specify <code translate="no" dir="ltr">family/debian-12</code>, the latest version in the Debian 12 image family is used. For more information about using image families, see <a href="/compute/docs/images/image-families-best-practices">Image families best practices</a>.</p></li> </ul></li> </ul></section> </div> <p>For more information about creating a VM, see <a href="/compute/docs/instances/create-start-instance">Create and start a Compute Engine instance</a>.</p> <h4 id="create-instance-template-not-consume-reservations" data-text="Create an instance template to not consume reservations" tabindex="-1">Create an instance template to not consume reservations</h4> <p>To create an instance template that creates VMs that don't explicitly consume reservations, select one of the following options:</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="console_4" data-text=" Console " tabindex="-1"> Console </h3><ol> <li><p>In the Google Cloud console, go to the <strong>Create an instance template</strong> page.</p> <p><a href="https://console.cloud.google.com/compute/instanceTemplates/add" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="createInstanceTemplateWithoutConsumingReservations" track-metadata-end-goal="createInstanceTemplateWithoutConsumingReservations" class="button button-primary">Go to Create an instance template</a> </p></li> <li><p>In the <strong>Name</strong> field, enter a name for the instance template.</p></li> <li><p>In the <strong>Location</strong> section, specify whether you want to create a regional (default) or global instance template.</p></li> <li><p>In the <strong>Machine configuration</strong> section, specify the machine type to use for the VMs created using the template.</p></li> <li><p>Expand the <strong>Advanced options</strong> section, and then do the following:</p> <ol> <li><p>Expand the <strong>Management</strong> section.</p></li> <li><p>In the <strong>Reservations</strong> section, in the <strong>Application policy</strong> list, select <strong>Don't use</strong>.</p></li> </ol></li> <li><p>Click <strong>Create</strong>.</p></li> </ol></section> <section><h3 id="gcloud_4" data-text=" gcloud " tabindex="-1"> gcloud </h3><p>To create an instance template that creates VMs that don't explicitly consume reservations, use the <a href="/sdk/gcloud/reference/compute/instance-templates/create"><code translate="no" dir="ltr">gcloud compute instances-templates create</code> command</a> with the <code translate="no" dir="ltr">--reservation-affinity=none</code> flag.</p> <p>For example, to create a global instance template that creates VMs that don't explicitly consume reservations, run the following command:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">gcloud compute instance-templates create <var translate="no">INSTANCE_TEMPLATE_NAME</var> \ --machine-type=<var translate="no">MACHINE_TYPE</var> \ --reservation-affinity=none </code></pre></devsite-code> <p>Replace the following:</p> <ul> <li><p><code translate="no" dir="ltr"><var translate="no">INSTANCE_TEMPLATE_NAME</var></code>: the name of the instance template.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">MACHINE_TYPE</var></code>: the machine type to use for the VMs created using the instance template.</p></li> </ul></section> <section><h3 id="go_4" data-text=" Go " tabindex="-1"> Go </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/golang-samples/compute/reservations/create_template_not_consume_reservation.go/HEAD/compute_template_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/create_template_not_consume_reservation.go" feedback-context="{"language": "go", "region_tag": "compute_template_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/golang-samples/blob/HEAD/compute/reservations/create_template_not_consume_reservation.go"}" feedback-product="1634365" feedback-bucket="infraops" language="go" data-github-path="GoogleCloudPlatform/golang-samples/compute/reservations/create_template_not_consume_reservation.go" data-git-revision="HEAD" data-region-tag="compute_template_not_consume_reservation" dir="ltr" is-upgraded syntax="Go"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"context"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"fmt"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"io"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"cloud.google.com/go/compute/apiv1/computepb"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"google.golang.org/protobuf/proto"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-c1">// createInstanceNotConsumeReservation creates a new instance template, which won't consume reservations</span> <span class="devsite-syntax-kd">func</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">createTemplateNotConsumeReservation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">io</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Writer</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">templateName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">string</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">error</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// projectID := "your_project_id"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// templateName := "your_template_name"</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">context</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Background</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NewInstanceTemplatesRESTClient</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NewInstanceTemplatesRESTClient: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">defer</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Close</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InsertInstanceTemplateRequest</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Project</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectID</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InstanceTemplateResource</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstanceTemplate</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">templateName</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Properties</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstanceProperties</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// The template describes the size and source image of the boot disk</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// to attach to the instance.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Disks</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">InitializeParams</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">DiskSizeGb</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Int64</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">250</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">SourceImage</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">AutoDelete</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Boot</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Bool</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">MachineType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"e2-standard-4"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// The template connects the instance to the `default` network,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// without specifying a subnetwork.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">NetworkInterfaces</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"global/networks/default"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// The template lets the instance use an external IP address.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">AccessConfigs</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[]</span><span class="devsite-syntax-o">*</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AccessConfig</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Name</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"External NAT"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Type</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AccessConfig_ONE_TO_ONE_NAT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">()),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">NetworkTier</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AccessConfig_PREMIUM</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">()),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span>&<span class="devsite-syntax-nx">computepb</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">ConsumeReservationType</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">proto</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">String</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"NO_RESERVATION"</span><span class="devsite-syntax-p">),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Insert</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">req</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to create instance template: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">op</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Wait</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">ctx</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Errorf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"unable to wait for the operation: %w"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">err</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">fmt</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">Fprintf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">w</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"Instance template created\n"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">nil</span> <span class="devsite-syntax-p">}</span> </code></pre></devsite-code> </div> </section> <section><h3 id="java_4" data-text=" Java " tabindex="-1"> Java </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/CreateTemplateWithoutConsumingReservation.java/HEAD/compute_template_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/CreateTemplateWithoutConsumingReservation.java" feedback-context="{"language": "java", "region_tag": "compute_template_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/java-docs-samples/blob/HEAD/compute/cloud-client/src/main/java/compute/reservation/CreateTemplateWithoutConsumingReservation.java"}" feedback-product="1634365" feedback-bucket="infraops" language="java" data-github-path="GoogleCloudPlatform/java-docs-samples/compute/cloud-client/src/main/java/compute/reservation/CreateTemplateWithoutConsumingReservation.java" data-git-revision="HEAD" data-region-tag="compute_template_not_consume_reservation" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">import static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity.ConsumeReservationType.NO_RESERVATION</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AccessConfig</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDisk</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.AttachedDiskInitializeParams</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InsertInstanceTemplateRequest</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstanceProperties</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstanceTemplate</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.InstanceTemplatesClient</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.NetworkInterface</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.Operation</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">com.google.cloud.compute.v1.ReservationAffinity</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.io.IOException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.ExecutionException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeUnit</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">java.util.concurrent.TimeoutException</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">class</span> <span class="devsite-syntax-nc">CreateTemplateWithoutConsumingReservation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">main</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-o">[]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">args</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// TODO(developer): Replace these variables before running the sample.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Project ID or project number of the Cloud project you want to use.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_PROJECT_ID"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Name of the template you want to query.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">templateName</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"YOUR_INSTANCE_TEMPLATE_NAME"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"e2-standard-4"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">createTemplateWithoutConsumingReservationAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">templateName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Create a template that explicitly doesn't consume any reservations.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstanceTemplate</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">createTemplateWithoutConsumingReservationAsync</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">templateName</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">IOException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ExecutionException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InterruptedException</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeoutException</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Initialize client that will be used to send requests. This client only needs to be created</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// once, and can be reused for multiple requests.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">try</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstanceTemplatesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceTemplatesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">create</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">attachedDisk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInitializeParams</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setSourceImage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sourceImage</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"pd-balanced"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setDiskSizeGb</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">250</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setAutoDelete</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setBoot</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"global/networks/default"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addAccessConfigs</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"External NAT"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">Type</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">ONE_TO_ONE_NAT</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setNetworkTier</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">NetworkTier</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">PREMIUM</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setConsumeReservationType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">NO_RESERVATION</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">toString</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstanceProperties</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceProperties</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InstanceProperties</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addDisks</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">attachedDisk</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setMachineType</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">machineType</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setReservationAffinity</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">reservationAffinity</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">addNetworkInterfaces</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">networkInterface</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceTemplateRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">insertInstanceTemplateRequest</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">InsertInstanceTemplateRequest</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProject</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setInstanceTemplateResource</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">InstanceTemplate</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newBuilder</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setName</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">templateName</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">setProperties</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">instanceProperties</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">insertAsync</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">insertInstanceTemplateRequest</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">3</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TimeUnit</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">MINUTES</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">hasError</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">projectId</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">templateName</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">}</span></code></pre></devsite-code> </div> </section> <section><h3 id="node.js_3" data-text=" Node.js " tabindex="-1"> Node.js </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createTemplateToNotConsumeReservation.js/HEAD/compute_template_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createTemplateToNotConsumeReservation.js" feedback-context="{"language": "nodejs", "region_tag": "compute_template_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/HEAD/compute/reservations/createTemplateToNotConsumeReservation.js"}" feedback-product="1634365" feedback-bucket="infraops" language="nodejs" data-github-path="GoogleCloudPlatform/nodejs-docs-samples/compute/reservations/createTemplateToNotConsumeReservation.js" data-git-revision="HEAD" data-region-tag="compute_template_not_consume_reservation" dir="ltr" is-upgraded syntax="JavaScript"><code translate="no" dir="ltr"><span class="devsite-syntax-c1">// Import the Compute library</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">require</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'@google-cloud/compute'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">protos</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">google</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">cloud</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">v1</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-c1">// Instantiate an instanceTemplatesClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstanceTemplatesClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// Instantiate a globalOperationsClient</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">globalOperationsClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">computeLib</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">GlobalOperationsClient</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-cm">/**</span> <span class="devsite-syntax-cm"> * TODO(developer): Update/uncomment these variables before running the sample.</span> <span class="devsite-syntax-cm"> */</span> <span class="devsite-syntax-c1">// The ID of the project where you want to create template.</span> <span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getProjectId</span><span class="devsite-syntax-p">();</span> <span class="devsite-syntax-c1">// The name of the template to create.</span> <span class="devsite-syntax-c1">// const templateName = 'instance-01';</span> <span class="devsite-syntax-c1">// Create an instance template that creates VMs that don't explicitly consume reservations</span> <span class="devsite-syntax-k">async</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateTemplateToNotConsumeReservation</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define the boot disk for the instance template</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDisk</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">initializeParams</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">sourceImage</span><span class="devsite-syntax-o">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'projects/debian-cloud/global/images/debian-12-bookworm-v20240815'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">diskSizeGb</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'100'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">diskType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'pd-balanced'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}),</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">autoDelete</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">boot</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">type</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'PERSISTENT'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define the network interface for the instance template</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">network</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">NetworkInterface</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">network</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-sb">`projects/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">/global/networks/default`</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define reservationAffinity</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">ReservationAffinity</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">consumeReservationType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'NO_RESERVATION'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Define instance template</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplate</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-ow">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">compute</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">InstanceTemplate</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">templateName</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">properties</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">disks</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">disk</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">machineType</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'e2-medium'</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// The template connects the instance to the `default` network,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// without specifying a subnetwork.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">networkInterfaces</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">network</span><span class="devsite-syntax-p">],</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">reservationAffinity</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">},</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplatesClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">insert</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplateResource</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">instanceTemplate</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">let</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">latestResponse</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Wait for the create instance operation to complete.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">status</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">!==</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'DONE'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">globalOperationsClient</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">wait</span><span class="devsite-syntax-p">({</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">operation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">project</span><span class="devsite-syntax-o">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">projectId</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">console</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">log</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`Template </span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">templateName</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb"> created.`</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-k">await</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">callCreateTemplateToNotConsumeReservation</span><span class="devsite-syntax-p">();</span></code></pre></devsite-code> </div> </section> <section><h3 id="python_4" data-text=" Python " tabindex="-1"> Python </h3> <div class="github-docwidget-gitinclude-code"> <div></div><devsite-code><pre suppresswarning="suppresswarning" translate="no" class="devsite-click-to-copy" track-metadata-position="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/create_vm_template_not_consume_reservation.py/HEAD/compute_template_not_consume_reservation" data-code-snippet="true" data-github-includecode-link="https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/create_vm_template_not_consume_reservation.py" feedback-context="{"language": "python", "region_tag": "compute_template_not_consume_reservation", "snippet_file_url": "https://github.com/GoogleCloudPlatform/python-docs-samples/blob/HEAD/compute/client_library/snippets/compute_reservations/create_vm_template_not_consume_reservation.py"}" feedback-product="1634365" feedback-bucket="infraops" language="python" data-github-path="GoogleCloudPlatform/python-docs-samples/compute/client_library/snippets/compute_reservations/create_vm_template_not_consume_reservation.py" data-git-revision="HEAD" data-region-tag="compute_template_not_consume_reservation" dir="ltr" is-upgraded syntax="Python"><code translate="no" dir="ltr"><span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">__future__</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">annotations</span> <span class="devsite-syntax-kn">import</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">sys</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">typing</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">Any</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.api_core.extended_operation</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">ExtendedOperation</span> <span class="devsite-syntax-kn">from</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nn">google.cloud</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kn">import</span> <span class="devsite-syntax-n">compute_v1</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-n">ExtendedOperation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"operation"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">int</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-mi">300</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">Any</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Waits for the extended (long-running) operation to complete.</span> <span class="devsite-syntax-sd"> If the operation is successful, it will return its result.</span> <span class="devsite-syntax-sd"> If the operation ends with an error, an exception will be raised.</span> <span class="devsite-syntax-sd"> If there were any warnings during the execution of the operation</span> <span class="devsite-syntax-sd"> they will be printed to sys.stderr.</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> operation: a long-running operation you want to wait on.</span> <span class="devsite-syntax-sd"> verbose_name: (optional) a more verbose name of the operation,</span> <span class="devsite-syntax-sd"> used only during error and warning reporting.</span> <span class="devsite-syntax-sd"> timeout: how long (in seconds) to wait for operation to finish.</span> <span class="devsite-syntax-sd"> If None, wait indefinitely.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> Whatever the operation.result() returns.</span> <span class="devsite-syntax-sd"> Raises:</span> <span class="devsite-syntax-sd"> This method will raise the exception received from `operation.exception()`</span> <span class="devsite-syntax-sd"> or RuntimeError if there is no exception set, but there is an `error_code`</span> <span class="devsite-syntax-sd"> set for the `operation`.</span> <span class="devsite-syntax-sd"> In case of an operation taking longer than `timeout` seconds to complete,</span> <span class="devsite-syntax-sd"> a `concurrent.futures.TimeoutError` will be raised.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">result</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">timeout</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Error during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: [Code: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">]: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Operation ID: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">raise</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">exception</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-ow">or</span> <span class="devsite-syntax-ne">RuntimeError</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">error_message</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">if</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">"Warnings during </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">verbose_name</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">:</span><span class="devsite-syntax-se">\n</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">for</span> <span class="devsite-syntax-n">warning</span> <span class="devsite-syntax-ow">in</span> <span class="devsite-syntax-n">operation</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">warnings</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">print</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sa">f</span><span class="devsite-syntax-s2">" - </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">code</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">: </span><span class="devsite-syntax-si">{</span><span class="devsite-syntax-n">warning</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">message</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-s2">"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">file</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">sys</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">stderr</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">flush</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">result</span> <span class="devsite-syntax-k">def</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">create_instance_template_not_consume_reservation</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">template_name</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">machine_type</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-nb">str</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-s2">"n1-standard-1"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-o">-</span>> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstanceTemplate</span><span class="devsite-syntax-p">:</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-sd">"""</span> <span class="devsite-syntax-sd"> Creates an instance template that creates VMs that don't explicitly consume reservations</span> <span class="devsite-syntax-sd"> Args:</span> <span class="devsite-syntax-sd"> project_id: project ID or project number of the Cloud project you use.</span> <span class="devsite-syntax-sd"> template_name: name of the new template to create.</span> <span class="devsite-syntax-sd"> machine_type: machine type for the instance.</span> <span class="devsite-syntax-sd"> Returns:</span> <span class="devsite-syntax-sd"> InstanceTemplate object that represents the new instance template.</span> <span class="devsite-syntax-sd"> """</span> <span class="devsite-syntax-n">template</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstanceTemplate</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">template</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">name</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">template_name</span> <span class="devsite-syntax-n">template</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">properties</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">machine_type</span> <span class="devsite-syntax-c1"># The template describes the size and source image of the boot disk</span> <span class="devsite-syntax-c1"># to attach to the instance.</span> <span class="devsite-syntax-n">template</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">properties</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">disks</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDisk</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">boot</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">auto_delete</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-kc">True</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-c1"># The disk will be deleted when the instance is deleted</span> <span class="devsite-syntax-n">initialize_params</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AttachedDiskInitializeParams</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">source_image</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"projects/debian-cloud/global/images/family/debian-11"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">disk_size_gb</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-mi">10</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">),</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># The template connects the instance to the `default` network,</span> <span class="devsite-syntax-n">template</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">properties</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">network_interfaces</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">NetworkInterface</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">network</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"global/networks/default"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">access_configs</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-p">[</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">AccessConfig</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"External NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-nb">type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"ONE_TO_ONE_NAT"</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">],</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">]</span> <span class="devsite-syntax-c1"># The template doesn't explicitly consume reservations</span> <span class="devsite-syntax-n">template</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">properties</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">reservation_affinity</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">ReservationAffinity</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">consume_reservation_type</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"NO_RESERVATION"</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">template_client</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">compute_v1</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">InstanceTemplatesClient</span><span class="devsite-syntax-p">()</span> <span class="devsite-syntax-n">operation</span> <span class="devsite-syntax-o">=</span> <span class="devsite-syntax-n">template_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">insert</span><span class="devsite-syntax-p">(</span> <span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_template_resource</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">template</span> <span class="devsite-syntax-p">)</span> <span class="devsite-syntax-n">wait_for_extended_operation</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">operation</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-s2">"instance template creation"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">return</span> <span class="devsite-syntax-n">template_client</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-n">get</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">project</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">project_id</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-n">instance_template</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-n">template_name</span><span class="devsite-syntax-p">)</span> </code></pre></devsite-code> </div> </section> <section><h3 id="rest_4" data-text=" REST " tabindex="-1"> REST </h3><p>To create an instance template that creates VMs that don't explicitly consume reservations, make a <code translate="no" dir="ltr">POST</code> request to one of the following methods:</p> <ul> <li><p>To create a global instance template: <a href="/compute/docs/reference/rest/v1/instanceTemplates/insert"><code translate="no" dir="ltr">instanceTemplates.insert</code> method</a>.</p></li> <li><p>To create a regional instance template: <a href="/compute/docs/reference/rest/v1/regionInstanceTemplates/insert"><code translate="no" dir="ltr">regionInstanceTemplates.insert</code> method</a>.</p></li> </ul> <p>In the request body, include the <code translate="no" dir="ltr">consumeReservationType</code> field and set it to <code translate="no" dir="ltr">NO_RESERVATION</code>.</p> <p>For example, to create a global instance template that creates VMs that don't explicitly consume reservations, make a request as follows:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded><code translate="no" dir="ltr">POST https://compute.googleapis.com/compute/v1/projects/<var translate="no">PROJECT_ID</var>/global/InstanceTemplates { "name": "<var translate="no">INSTANCE_TEMPLATE_NAME</var>", "properties": { "machineType": "<var translate="no">MACHINE_TYPE</var>", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/<var translate="no">IMAGE_PROJECT</var>/global/images/<var translate="no">IMAGE</var>" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } } </code></pre></devsite-code> <p>Replace the following:</p> <ul> <li><p><code translate="no" dir="ltr"><var translate="no">PROJECT_ID</var></code>: the ID of the project in which to create the instance template.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">INSTANCE_TEMPLATE_NAME</var></code>: the name of the instance template.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">MACHINE_TYPE</var></code>: the machine type to use for the VMs created using the instance template.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">IMAGE_PROJECT</var></code>: the image project that contains the OS image—for example, <code translate="no" dir="ltr">debian-cloud</code>. For more information about the supported image projects, see <a href="/compute/docs/images#os-compute-support">Public images</a>.</p></li> <li><p><code translate="no" dir="ltr"><var translate="no">IMAGE</var></code>: specify one of the following:</p> <ul> <li><p>A specific version of the OS image—for example, <code translate="no" dir="ltr">debian-12-bookworm-v20240617</code>.</p></li> <li><p>An <a href="/compute/docs/images/os-details">image family</a>, which must be formatted as <code translate="no" dir="ltr">family/<var translate="no">IMAGE_FAMILY</var></code>. This specifies the most recent, non-deprecated OS image. For example, if you specify <code translate="no" dir="ltr">family/debian-12</code>, the latest version in the Debian 12 image family is used. For more information about using image families, see <a href="/compute/docs/images/image-families-best-practices">Image families best practices</a>.</p></li> </ul></li> </ul></section> </div> <p>For more information about creating instance templates, see <a href="/compute/docs/instance-templates/create-instance-templates">Create instance templates</a>.</p> <h2 id="test-properties-match" data-text="Test that VM properties match a reservation" tabindex="-1">Test that VM properties match a reservation</h2> <p>To test whether VMs can automatically consume a reservation, you can create a copy of the reservation as a specific reservation, and then see if a VM you plan to create can consume that reservation. If you can successfully create the VM, then you've verified that the VM can correctly consume the matching reservation. Otherwise, creating the VM fails because <a href="/compute/docs/troubleshooting/troubleshooting-vm-creation#mismatched_reservation_properties">the properties don't match</a> or there are <a href="/compute/docs/troubleshooting/troubleshooting-reservation-creation#resource-availability">no available reserved resources</a>. After testing, you can do one or more of the following:</p> <ul> <li><p><a href="/compute/docs/instances/reservations-delete">Delete</a> or <a href="/compute/docs/instances/reservations-modify">update the specific reservation</a> you used for testing.</p></li> <li><p><a href="/compute/docs/instances/deleting-instance">Delete the VM</a> or <a href="/compute/docs/instances/update-instance-properties">update it</a> to have a different reservation affinity (<code translate="no" dir="ltr">reservationAffinity</code>).</p></li> </ul> <h2 id="verify-consumption" data-text="Verify reservations consumption" tabindex="-1">Verify reservations consumption</h2> <p>To ensure that your VMs are effectively consuming your reservations, you can verify their consumption using the following methods:</p> <ul> <li><p><a href="/compute/docs/instances/reservations-view#describe-reservations">View the details of the reservation</a></p> <p>If the number of VMs consuming a reservation increases by 1 after you create or update a VM, then your action likely caused the VM to start consuming the reservation. This is the quickest way to check if a reservation is being consumed. However, it might not work well to verify which exact VM is consuming the reservation.</p></li> <li><p><a href="/compute/docs/instances/reservations-consume#consuming_instances_from_a_specific_reservation">Create the VM to target a specific reservation</a></p> <p>If you can successfully create a VM that targets a specific reservation, then the VM is consuming the reservation. This is the most reliable method to verify that a specific VM is consuming a reservation and that the VM's properties match the reservation's properties.</p></li> <li><p><a href="/compute/docs/instances/reservations-monitor">Monitor your reservations consumption</a></p> <p>By using Cloud Monitoring, you can access and view the information associated with the consumption of the reservations that were created in your project. Monitoring updates you reservations consumption data at least once every 30 minutes. This method is useful to verify the consumption trend of one or more reservations in a project, as well as receive notifications for underused or unused reservations.</p></li> </ul> <ul> <li><p><a href="/capacity-planner/docs/view-data">View the historical usage of your reservations</a></p> <p>By using Capacity Planner (<a href="/products#product-launch-stages">Preview</a>), you can access and view the historical usage of your reservations from their creation up to their deletion. Capacity Planner updates reservations consumption data every 24 hours. This method is useful for verifying the past consumption of your reservations within a project, folder, or organization, as well as helping you plan for future capacity needs.</p></li> </ul> <p>If you see that a VM isn't consuming a reservation after you've verified that the VM's reservation affinity can consume the reservation, the reservation isn't fully consumed, and the VM and the reservation's properties are matching, then see <a href="/compute/docs/troubleshooting/troubleshooting-reservation-creation#resource-availability">Resource availability</a>.</p> <h2 id="viewing_reservation_usage_reports" data-text="View reservation usage reports" tabindex="-1">View reservation usage reports</h2> <p>Export detailed reports of your Compute Engine usage to a Cloud Storage bucket using the usage export feature. For instructions, see <a href="/compute/docs/usage-export">Viewing usage reports</a>.</p> <p>The usage report shows the following:</p> <ul> <li>The reserved resources that are in use. These entries appear as normal vCPU, memory, GPU, and local SSD resources.</li> <li>The reserved resources that are not in use. These entries have normal SKU names and reservation resource URIs.</li> <li>Total reserved resources. These entries have reservation SKU names and reservation resource URIs. There are no costs associated with these entries. Use these entries to calculate how much of your reservations you are using.</li> </ul> <table> <tr> <th>Measurement </th> <th><code translate="no" dir="ltr">MeasurementId</code> format </th> <th><code translate="no" dir="ltr">Resource URI</code> format </th> </tr> <tr> <td>Reserved resources that are in use </td> <td><code translate="no" dir="ltr">com.google.cloud/services/compute-engine/<var translate="no">SKU_NAME</var></code> </td> <td><code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/<var translate="no">PROJECT_ID</var>/zones/<var translate="no">ZONE</var>/<var translate="no">RESOURCE_TYPE</var>/<var translate="no">RESOURCE_NAME</var></code>. <br/> <br/> For example, <code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance</code> </td> </tr> <tr> <td>Reserved resources that are not in use </td> <td><code translate="no" dir="ltr">com.google.cloud/services/compute-engine/<var translate="no">SKU_NAME</var></code> </td> <td><code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/<var translate="no">PROJECT_ID</var>/zones/<var translate="no">ZONE</var>/reservations/<var translate="no">RESERVATION_NAME</var></code>. <br/> <br/> For example, <code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation</code> </td> </tr> <tr> <td>Total reserved resources </td> <td><code translate="no" dir="ltr">com.google.cloud/services/compute-engine/Reservation<var translate="no">SKU_NAME</var></code> </td> <td><code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/<var translate="no">PROJECT_ID</var>/zones/<var translate="no">ZONE</var>/reservations/<var translate="no">RESERVATION_NAME</var></code>. <br/> <br/> For example, <code translate="no" dir="ltr">https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation</code> </td> </tr> </table> <p>For example, in the following snippet from a usage report for a reservation named <code translate="no" dir="ltr">my-reservation</code>:</p> <ul> <li>Row 1 shows reserved RAM that is currently in use. The row's <code translate="no" dir="ltr">ResourceId</code> shows that this RAM is used by a VM named <code translate="no" dir="ltr">my-instance</code>.</li> <li>Row 2 shows reserved RAM that is not in use. The row's <code translate="no" dir="ltr">ResourceId</code> shows that this reserved RAM is held by <code translate="no" dir="ltr">my-reservation</code>; it is not yet used by any VM.</li> <li>Row 3 shows the reservation's total reserved RAM.</li> </ul> <div></div><devsite-code><pre class="no-select" translate="no" dir="ltr" is-upgraded> Report Date,MeasurementId,Quantity,Unit,Resource URI,ResourceId,Location 2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/instances/my-instance,1775485842510981624,us-central2-a 2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a 2019-06-06,com.google.cloud/services/compute-engine/ReservationN2StandardRam,333940149714944,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a ... </pre></devsite-code> <h2 id="troubleshooting_consumption" data-text="Troubleshoot" tabindex="-1">Troubleshoot</h2> <p>Learn how to <a href="/compute/docs/troubleshooting/troubleshooting-reservation-consumption">troubleshoot issues with reservation consumption</a>.</p> <h2 id="whats-next" data-text="What's next" tabindex="-1">What's next</h2> <ul> <li>Learn how to <a href="/compute/docs/instances/reservations-monitor">monitor reservations consumption</a>.</li> <li>Learn how to <a href="/compute/docs/instances/reservations-modify">modify reservations</a>.</li> <li>Learn how to <a href="/compute/docs/instances/reservations-delete">delete reservations</a>.</li> </ul> <devsite-hats-survey class="nocontent" hats-id="mwETRvWii0eU5NUYprb0Y9z5GVbc" listnr-id="83405"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Compute Engine Documentation" product-id="81820" bucket="documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=187134&template=0" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2025-02-14 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Compute Engine Documentation" product-id="81820" bucket="documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=187134&template=0" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-14 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Why Google</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/why-google-cloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventDetail="cloud.google.com/why-google-cloud/"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"track-name="choosing google cloud"track-metadata-child_headline="why google"> Choosing Google Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/trust-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-position="footer"track-type="footer link"track-metadata-module="footer"track-name="trust and security"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/security/"> Trust and security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/modern-infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-eventDetail="cloud.google.com/solutions/modern-infrastructure/"track-type="footer link"track-metadata-child_headline="why google"track-metadata-position="footer"track-name="modern infrastructure cloud"track-metadata-module="footer"> Modern Infrastructure Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/multicloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-type="footer link"track-metadata-position="footer"track-name="multicloud"track-metadata-child_headline="why google"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/multicloud/"> Multicloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-eventDetail="cloud.google.com/infrastructure/"track-metadata-module="footer"track-type="footer link"track-name="global infrastructure"track-metadata-position="footer"track-metadata-child_headline="why google"> Global infrastructure </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/customers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-name="customers and case studies"track-metadata-module="footer"track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/customers/"> Customers and case studies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/analyst-reports/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-position="footer"track-type="footer link"track-name="analyst reports"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/analyst-reports/"track-metadata-module="footer"> Analyst reports </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/whitepapers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-position="footer"track-name="whitepapers"track-type="footer link"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/whitepapers/"track-metadata-module="footer"> Whitepapers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/blog/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-position="footer"track-name="blog"track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/blog/"track-metadata-child_headline="engage"> Blog </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/pricing/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-type="footer link"track-name="google cloud pricing"track-metadata-position="footer"track-metadata-child_headline="products and pricing"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/pricing/"> Google Cloud pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//workspace.google.com/pricing.html" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-child_headline="products and pricing"track-metadata-module="footer"track-metadata-position="footer"track-name="google workspace pricing"target="_blank"track-type="footer link"track-metadata-eventDetail="workspace.google.com/pricing.html"> Google Workspace pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/products/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-type="footer link"track-metadata-position="footer"track-name="see all products"track-metadata-child_headline="products and pricing"track-metadata-eventDetail="cloud.google.com/products/"track-metadata-module="footer"> See all products </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Solutions</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/solutions/infrastructure-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="infrastructure modernization"track-metadata-module="footer"track-metadata-child_headline="solutions"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/infrastructure-modernization/"track-type="footer link"> Infrastructure modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/databases/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-position="footer"track-name="databases"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/databases"track-metadata-module="footer"track-type="footer link"> Databases </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/application-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-name="application development"track-metadata-position="footer"track-type="footer link"track-metadata-module="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/application-modernization/"> Application modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/smart-analytics/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-type="footer link"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/smart-analytics/"track-name="smart analytics"track-metadata-position="footer"track-metadata-module="footer"> Smart analytics </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/ai/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-name="artificial intelligence"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/ai/"track-type="footer link"> Artificial Intelligence </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/security/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-name="security"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/security/"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"> Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://workspace.google.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-eventDetail="workspace.google.com/enterprise/"track-metadata-position="footer"target="_blank"track-metadata-module="footer"track-name="productivity and work transformation"track-metadata-child_headline="solutions"track-type="footer link"> Productivity & work transformation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#industry-solutions" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-name="industry solutions"track-metadata-module="footer"track-metadata-position="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/solutions/#industry-solutions"track-metadata-child_headline="solutions"> Industry solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/devops/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-child_headline="solutions"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/devops/"track-metadata-position="footer"track-type="footer link"track-name="devops solutions"> DevOps solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#section-14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-position="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/solutions/#section-14"track-metadata-child_headline="solutions"track-metadata-module="footer"track-name="small business solutions"> Small business solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/"track-name="see all solutions"track-type="footer link"> See all solutions </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/affiliate-program/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="google cloud affiliate program"track-metadata-position="footer"track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/affiliate-program/"track-metadata-child_headline="resources"> Google Cloud Affiliate Program </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-type="footer link"track-metadata-module="footer"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/docs/"track-metadata-position="footer"track-name="google cloud documentation"> Google Cloud documentation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/get-started/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-position="footer"track-metadata-child_headline="resources"track-name="google cloud quickstarts"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/docs/get-started/"track-type="footer link"> Google Cloud quickstarts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/marketplace/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-eventDetail="cloud.google.com/marketplace/"track-metadata-module="footer"track-metadata-position="footer"track-name="google cloud marketplace"track-type="footer link"track-metadata-child_headline="resources"> Google Cloud Marketplace </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/discover/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-name="learn about cloud computing"track-type="footer link"track-metadata-eventDetail="learn/"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"> Learn about cloud computing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support-hub/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-eventDetail="cloud.google.com/support-hub/"track-type="footer link"track-name="support"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"> Support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-eventDetail="cloud.google.com/docs/samples"track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="resources"track-name="code samples"track-metadata-module="footer"> Code samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/architecture/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-eventDetail="cloud.google.com/architecture/"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"track-name="cloud architecture center"track-type="footer link"> Cloud Architecture Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/training/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-name="training"track-type="footer link"track-metadata-eventDetail="cloud.google.com/training/"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"> Training </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/certification/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-child_headline="resources"track-name="certifications"track-metadata-eventDetail="cloud.google.com/certification"track-metadata-module="footer"track-metadata-position="footer"track-type="footer link"> Certifications </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-eventDetail="developers.google.com"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="resources"track-metadata-position="footer"target="_blank"track-name="google developers"> Google for Developers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/startup/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-metadata-position="footer"track-name="google cloud for startups"track-type="footer link"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/startup/"> Google Cloud for Startups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//status.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" target="_blank"track-metadata-position="footer"track-metadata-child_headline="resources"track-type="footer link"track-name="system status"track-metadata-module="footer"track-metadata-eventDetail="status.cloud.google.com"> System status </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/release-notes" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 14)" track-metadata-child_headline="resources"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-name="release notes"track-metadata-eventDetail="cloud.google.com/release-notes/"> Release Notes </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/contact/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventDetail="cloud.google.com/contact/"track-metadata-module="footer"track-metadata-child_headline="engage"track-type="footer link"track-metadata-position="footer"track-name="contact sales"> Contact sales </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/find-a-partner" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-child_headline="engage"track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/find-a-partner"target="_blank"track-metadata-position="footer"track-name="find a partner"> Find a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/partners/become-a-partner/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-child_headline="engage"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-name="become a partner"track-metadata-eventDetail="cloud.google.com/partners/become-a-partner/"> Become a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/events/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-name="events"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.withgoogle.com/events"track-type="footer link"track-metadata-child_headline="engage"> Events </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-eventDetail="cloud.google.com/podcasts/"rel="noopener"track-name="podcasts"track-metadata-position="footer"track-metadata-child_headline="engage"track-type="footer link"track-metadata-module="footer"target="_blank"> Podcasts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/developers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-eventDetail="cloud.google.com/developers/"track-metadata-position="footer"track-metadata-module="footer"track-name="developer center"track-metadata-child_headline="engage"track-type="footer link"> Developer Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudpresscorner.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-position="footer"track-name="press corner"target="_blank"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="engage"rel="noopener"track-metadata-eventDetail="www.googlecloudpresscorner.com"> Press Corner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-type="footer link"track-metadata-eventDetail="www.youtube.com/googlecloud"track-metadata-module="footer"track-metadata-child_headline="engage"track-name="google cloud on youtube"rel="noopener"track-metadata-position="footer"target="_blank"> Google Cloud on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloudplatform" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" target="_blank"track-metadata-eventDetail="www.youtube.com/googlecloudplatform"track-type="footer link"track-metadata-module="footer"track-metadata-child_headline="engage"track-metadata-position="footer"rel="noopener"track-name="google cloud tech on youtube"> Google Cloud Tech on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" target="_blank"track-metadata-module="footer"rel="noopener"track-type="footer link"track-metadata-child_headline="engage"track-metadata-eventDetail="x.com/googlecloud"track-metadata-position="footer"track-name="follow on x"> Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//userresearch.google.com/?reserved=1&utm_source=website&Q_Language=en&utm_medium=own_srch&utm_campaign=CloudWebFooter&utm_term=0&utm_content=0&productTag=clou&campaignDate=jul19&pType=devel&referral_code=jk212693" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-eventDetail="userresearch.google.com/?reserved=1&utm_source=website&Q_Language=en&utm_medium=own_srch&utm_campaign=CloudWebFooter&utm_term=0&utm_content=0&productTag=clou&campaignDate=jul19&pType=devel&referral_code=jk212693"target="_blank"track-metadata-module="footer"track-type="footer link"track-name="join user research"track-metadata-position="footer"track-metadata-child_headline="engage"> Join User Research </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//careers.google.com/cloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-metadata-eventDetail="careers.google.com/cloud"track-name="we are hiring join google cloud"track-metadata-position="footer"target="_blank"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="engage"> We're hiring. Join Google Cloud! </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudcommunity.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-name="google cloud community"track-metadata-eventDetail="www.googlecloudcommunity.com"track-metadata-child_headline="engage"track-metadata-position="footer"rel="noopener"track-metadata-module="footer"target="_blank"track-type="footer link"> Google Cloud Community </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//about.google/" data-category="Site-Wide Custom Events" data-label="Footer About Google link" track-metadata-eventDetail="//about.google/" track-name="about google" target="_blank" track-metadata-position="footer" track-metadata-module="utility footer" track-type="footer link" > About Google </a> </li> <li class="devsite-footer-utility-item devsite-footer-privacy-link"> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" track-metadata-module="utility footer" target="_blank" track-type="footer link" track-metadata-eventDetail="//policies.google.com/privacy" track-name="privacy" track-metadata-position="footer" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//www.google.com/intl/en/policies/terms/regional.html" data-category="Site-Wide Custom Events" data-label="Footer Site terms link" track-name="site terms" track-metadata-position="footer" target="_blank" track-type="footer link" track-metadata-module="utility footer" track-metadata-eventDetail="//www.google.com/intl/en/policies/terms/regional.html" > Site terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/product-terms/" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud terms link" track-metadata-position="footer" track-name="google cloud terms" track-metadata-module="utility footer" track-type="footer link" track-metadata-eventDetail="/product-terms/" > Google Cloud terms </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" track-metadata-eventDetail="#" track-name="Manage cookies" track-metadata-position="footer" aria-hidden="true" track-metadata-module="utility footer" track-type="footer link" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-carbon-button"> <a class="devsite-footer-utility-link gc-analytics-event" href="/sustainability" data-category="Site-Wide Custom Events" data-label="Footer Our third decade of climate action: join us link" track-type="footer link" track-metadata-module="utility footer" track-metadata-eventDetail="/sustainability/" track-name="Our third decade of climate action: join us" track-metadata-position="footer" > Our third decade of climate action: join us </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" track-metadata-position="footer" track-type="footer link" track-metadata-module="utility footer" track-name="subscribe" track-metadata-eventDetail="/newsletter/" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-5CVQBG", "purpose": 1}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Compute Engine Documentation", "signedIn": "False", "tenant": "cloud", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <cloudx-user></cloudx-user> <cloudx-free-trial-eligible-store freeTrialEligible='true'></cloudx-free-trial-eligible-store> <cloudx-pricing-socket></cloudx-pricing-socket> <cloudx-experiments type="TestAACodivertedExperiment" path="/virtual/TestAACodivertedExperiment/configureExperiment" location="SG" variant="variant2" ></cloudx-experiments> <cloudx-experiment-ids userCountry="SG" devsiteExperimentIdList="[39300012, 39300020, 39300118, 39300196, 39300241, 39300318, 39300320, 39300324, 39300345, 39300354, 39300364, 39300374, 39300412, 39300422, 39300436, 39300473, 39300487, 39300496, 39300498, 39300569]"> </cloudx-experiment-ids> <script nonce="YS6XAkK6yMQIlw2sNfyvtmpWfdqV7z"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/js/app_loader.js', '[2,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud","https://cloud-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/cloud/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Concierge__enable_concierge_restricted","Profiles__enable_awarding_url","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__developers_footer_image","MiscFeatureFlags__enable_variable_operator","Concierge__enable_pushui","Search__enable_ai_search_summaries","Profiles__enable_stripe_subscription_management","Search__enable_ai_search_summaries_restricted","DevPro__enable_developer_subscriptions","MiscFeatureFlags__emergency_css","Search__enable_ai_eligibility_checks","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_profile_collections","Cloud__enable_llm_concierge_chat","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_cloud_dlp_service","Profiles__enable_release_notes_notifications","Cloud__enable_cloudx_experiment_ids","DevPro__enable_cloud_innovators_plus","Profiles__enable_complete_playlist_endpoint","Cloud__enable_free_trial_server_call","CloudShell__cloud_shell_button","BookNav__enable_tenant_cache_key","Profiles__require_profile_eligibility_for_signin","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__enable_view_transitions","EngEduTelemetry__enable_engedu_telemetry","Search__enable_suggestions_from_borg","Experiments__reqs_query_experiments","TpcFeatures__enable_unmirrored_page_left_nav","Profiles__enable_public_developer_profiles","Search__scope_to_project_tenant","TpcFeatures__enable_mirror_tenant_redirects","Analytics__enable_clearcut_logging","Profiles__enable_recognition_badges","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__enable_project_variables","Search__enable_page_map","Cloud__enable_cloud_facet_chat","Cloud__enable_cloudx_ping","Profiles__enable_page_saving","Profiles__enable_dashboard_curated_recommendations","Profiles__enable_join_program_group_endpoint","Cloud__enable_cloud_shell","Profiles__enable_completequiz_endpoint","Cloud__enable_legacy_calculator_redirect","Search__enable_dynamic_content_confidential_banner"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[2,"cloud","Google Cloud","cloud.google.com",null,"cloud-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],[1,1,null,null,1,null,["/vertex-ai/"]]],null,[22,null,null,null,null,null,"/images/cloud-logo.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,null,1,1,1,[6,5],[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,null,[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4,null,null,null,null,null,null,null,null,null,null,null,null,null,"cloud.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>