根據預設,每個執行個體都有一個網路介面,用於決定執行個體使用的虛擬私有雲網路。您可以建立具有多個網路介面的執行個體,其中每個介面都必須連線至不同的子網路。每個子網路都會定義可指派給執行個體的 IPv4 或 IPv6 位址範圍。
如要瞭解詳情,請參考下列資源:
根據預設, Google Cloud 會為每個專案建立名為 default 的自動模式虛擬私有雲網路。如要使用其他網路,或是在自動模式或自訂模式虛擬私有雲網路中手動建立的子網路,則必須在建立執行個體及設定網路介面時指定子網路。
事前準備
-
如果尚未設定驗證,請先完成設定。驗證機制會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。
gcloud
-
安裝 Google Cloud CLI。 安裝完成後, 請執行下列指令,初始化 Google Cloud CLI:
gcloud init如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
必要的角色
如要取得建立具有特定子網路的執行個體所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立特定子網路執行個體所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
您必須具備下列權限,才能建立具有特定子網路的執行個體:
- 專案的 compute.instances.create
-
如要為執行個體指定子網路:
compute.subnetworks.use專案或所選子網路 -
如要在使用虛擬私有雲網路時,為執行個體指派外部 IP 位址:
compute.subnetworks.useExternalIp在專案或所選子網路上
需求條件
在子網路中建立執行個體時,請留意下列規則:
- 如未指定網路或子網路,Compute Engine 會使用預設虛擬私有雲網路,以及與執行個體位於相同區域的自動子網路。
- 如未指定網路,Compute Engine 會根據指定的子網路推斷網路。
- 如果指定網路,則必須指定子網路,且子網路必須屬於同一個網路。否則無法建立執行個體。
您必須先建立要使用的子網路,才能建立執行個體。詳情請參閱「建立及管理虛擬私有雲網路」。
在特定子網路中建立執行個體
如要在特定子網路中建立執行個體,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
前往「Create an instance」(建立執行個體)
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
「Create an instance」(建立執行個體) 頁面隨即顯示,並顯示「Machine configuration」(機器設定) 窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱「資源命名慣例」。
選用:在「Zone」(可用區) 欄位中,選取這個執行個體的可用區。
預設選取項目為「不限」。如果未變更這項預設選項,Google 會根據機型和可用性,自動為您選擇可用區。
選取執行個體的機器家族。 Google Cloud 控制台會顯示所選機器家族可用的機器系列。可用的機器家族選項如下:
- 一般用途
- 運算最佳化
- 記憶體最佳化
- 儲存空間最佳化
- 網路最佳化
- GPU
- TPU
在「Series」(系列) 欄中,選取執行個體的機器系列。
如果您在上一個步驟中選取「GPU」做為機器家族,請選取所需的「GPU 類型」。系統會根據所選 GPU 類型自動選取機器系列。
在「Machine type」(機器類型) 部分,選取執行個體的機器類型。
點選導覽選單中的「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
如要允許 HTTP 或 HTTPS 流量傳送至執行個體,請前往「Firewall」(防火牆) 區段,然後選取「Allow HTTP traffic」(允許 HTTP 流量) 或「Allow HTTPS traffic」(允許 HTTPS 流量)。
Compute Engine 會在執行個體中新增網路標記,並建立對應的輸入防火牆規則,允許
tcp:80(HTTP) 或tcp:443(HTTPS) 上的所有傳入流量。網路標記會將防火牆規則與執行個體建立關聯。詳情請參閱 Cloud Next Generation Firewall 說明文件中的「防火牆規則總覽」。如要指定網路介面詳細資料,請前往「Network interfaces」(網路介面) 區段,然後按一下「Add a network interface」(新增網路介面)。
在隨即顯示的「New network interface」(新增網路介面) 區段中,執行下列操作:
- 在「Network」(網路) 欄位中,選取包含您所建立子網路的虛擬私有雲網路。
- 在「Subnetwork」(子網路) 清單中,選取執行個體要使用的子網路。
- 在「IP stack type」(IP 堆疊類型) 欄位中,選取網路介面的 IP 堆疊類型。
- 按一下「Done」(完成),確認網路介面詳細資料。
選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。
如要建立並啟動執行個體,請按一下「Create」(建立)。
gcloud
-
在 Google Cloud 控制台啟用 Cloud Shell。
Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。
使用 Google Cloud CLI,按照相同操作說明從公開映像檔或快照建立執行個體,並在執行
gcloud compute instances create指令時加入本節所示的網路旗標:gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image=projects/IMAGE_PROJECT/global/images/IMAGE,size=SIZE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESS \ --nic-type=GVNIC更改下列內容:
INSTANCE_NAME:運算執行個體的名稱ZONE:建立執行個體的可用區,例如europe-west1-b。執行個體的地區是從區域推測得出。MACHINE_TYPE:選用:執行個體要使用的機型。IMAGE_PROJECT:選用,包含映像檔的映像檔專案IMAGE:選用,指定下列其中一項:SIZE:選用:新磁碟的大小。值必須是整數。預設測量單位為 GiB。NETWORK_NAME::選用,網路名稱SUBNET_NAME:要與執行個體搭配使用的子網路名稱。如要查看網路中的子網路清單,請使用
gcloud compute networks subnets list指令。STACK_TYPE:選用:網路介面的堆疊類型。STACK_TYPE必須是下列其中一項:IPV4_ONLY、IPV4_IPV6或IPV6_ONLY。預設值為IPV4_ONLY。INTERNAL_IPV4_ADDRESS:選用:您希望運算執行個體在目標子網路中使用的內部 IPv4 位址。如果不需要特定 IP 位址,請略過這個旗標。如要指定內部 IPv6 位址,請改用
--internal-ipv6-address旗標。EXTERNAL_IPV4_ADDRESS:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須預先保留外部 IPv4 位址。執行下列其中一個步驟:- 請指定子網路中的有效 IPv4 位址。
- 如果您不希望網路介面具有外部 IP 位址,請改用
--network-interface=no-address旗標。 - 如要讓介面接收暫時外部 IP 位址,請指定
address=''。
如要指定外部 IPv6 位址,請改用
--external-ipv6-address旗標。
Terraform
如要在特定子網路中建立執行個體,可以使用 google_compute_instance 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要產生 Terraform 程式碼,您可以使用 Google Cloud 控制台中的「Equivalent code」(對等程式碼) 元件。- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 點選「建立執行個體」。
- 指定所需參數。
- 按一下頁面頂端或底部的「Equivalent code」(對等程式碼),然後點選「Terraform」分頁標籤,即可查看 Terraform 程式碼。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Go 設定操作說明進行操作。詳情請參閱 Compute Engine Go API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 Compute Engine Java API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 Compute Engine Node.js API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Compute Engine 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 Compute Engine Python API 參考文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
REST
按照 REST 操作說明,從公開映像檔或快照建立執行個體,但在要求主體中指定 subnet 欄位。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME", "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME", "stackType":"STACK_TYPE" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }
更改下列內容:
PROJECT_ID:要建立 VM 的專案 IDZONE:建立 VM 的可用區MACHINE_TYPE_ZONE:新 VM 要使用的機型所在可用區MACHINE_TYPE:新 VM 的機器類型,可為預先定義或自訂VM_NAME:新 VM 的名稱IMAGE_PROJECT:包含映像檔的專案
舉例來說,如果您指定debian-12做為映像檔系列,請指定debian-cloud做為映像檔專案。IMAGE:指定下列其中一項:IMAGE:公開映像檔的特定版本例如:
"sourceImage": "projects/debian-cloud/global/images/debian-12-bookworm-v20241112"IMAGE_FAMILY:映像檔系列指定映像檔系列後,系統會使用未淘汰的最新 OS 映像檔建立 VM。舉例來說,如果您指定
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",Compute Engine 就會使用 Debian 12 映像檔系列中最新版本的 OS 映像檔建立 VM。
NETWORK_NAME:選用:要用於 VM 的虛擬私有雲網路。您可以指定default,使用預設網路。REGION:指定子網路所在的區域。必須與 VM 位於相同區域。SUBNET_NAME:要使用的子網路名稱STACK_TYPE:選用:網路介面的堆疊類型。您可以指定IPV4_ONLY、IPV4_IPV6或IPV6_ONLY。預設值為IPV4_ONLY。ENABLE_SECURE_BOOT:選用:如果您選擇支援Shielded VM 功能的映像檔,Compute Engine 預設會啟用虛擬信任平台模組 (vTPM) 和完整性監控。Compute Engine 預設不會啟用安全啟動功能。如果將
enableSecureBoot指定為true,Compute Engine 會建立已啟用所有三項 Shielded VM 功能的 VM。Compute Engine 啟動 VM 後,您必須停止 VM,才能修改 Shielded VM 選項。