47了解公有云平台 GCP 的基本服务和使用方法,包括 Compute EngineCloud Storage
Posted 玩机科技社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了47了解公有云平台 GCP 的基本服务和使用方法,包括 Compute EngineCloud Storage相关的知识,希望对你有一定的参考价值。
GCP Compute Engine
Google Cloud Platform (GCP) 的 Compute Engine 是一个可扩展的云计算平台,可以让您快速启动虚拟机实例来运行您的应用程序。它提供了一种灵活的方式来管理您的计算资源,并支持多种操作系统、应用程序框架和开发工具。以下是一些基本的 Compute Engine 服务和使用方法:
1. 创建实例
在 GCP 控制台上创建 Compute Engine 实例非常容易。只需要指定实例的名称、类型、操作系统和其他一些配置选项即可。
下面是一个示例 Python 代码片段,可以使用 Google Cloud Python 客户端库来创建 Compute Engine 实例
from google.cloud import compute_v1
client = compute_v1.InstancesClient()
project_id = 'your-project-id'
zone = 'us-central1-a'
config =
"name": "instance-1",
"machine_type": f"zones/zone/machineTypes/n1-standard-1",
"disks": [
"boot": True,
"auto_delete": True,
"initialize_params":
"source_image": "projects/debian-cloud/global/images/family/debian-9"
],
"network_interfaces": [
"network": "global/networks/default"
]
operation = client.insert(project=project_id, zone=zone, body=config)
print(f"Instance created: operation.name")
2. 管理实例
一旦您创建了 Compute Engine 实例,您可以使用 GCP 控制台或 API 来管理它们。这包括启动、停止、重新启动、删除等操作。
以下是一个示例 Python 代码片段,可以使用 Google Cloud Python 客户端库来停止 Compute Engine 实例:
from google.cloud import compute_v1
client = compute_v1.InstancesClient()
project_id = 'your-project-id'
zone = 'us-central1-a'
instance_name = 'instance-1'
instance_path = client.instance_path(project_id, zone, instance_name)
client.stop(instance_path)
print(f"Instance instance_name stopped")
. 网络设置
Compute Engine 还提供了一种灵活的方式来管理您的网络设置。您可以创建自定义 VPC 网络、子网、防火墙规则等,以确保您的实例得到最佳的网络连接。
以下是一个示例 Python 代码片段,可以使用 Google Cloud Python 客户端库来创建 VPC 网络:
from google.cloud import compute_v1
client = compute_v1.VirtualNetworksClient()
project_id = 'your-project-id'
region = 'us-central1'
network_name = 'my-network'
config =
"name": network_name,
"auto_create_subnetworks": True
operation = client.insert(project=project_id, region=region, body=config)
print(f"Network created: operation.name")
GCP Cloud Storage
Google Cloud Storage 是 GCP 提供的一个高可用性、持久性
GCP 的 Compute Engine 是一种虚拟机实例,可以在其中运行应用程序。Cloud Storage 是 GCP 提供的对象存储服务。下面是它们的基本使用方法和示例代码:
Compute Engine
创建 VM 实例
可以通过以下步骤在 Compute Engine 中创建一个 VM 实例:
- 在 GCP 控制台中导航到 Compute Engine 页面。
- 单击“创建实例”按钮。
- 在“实例详细信息”页面上,填写实例名称、所需的机器类型、区域和区域,以及其他设置。
- 单击“创建”按钮。
以下是使用 Python SDK 创建 VM 实例的示例代码:
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
compute = discovery.build('compute', 'v1', credentials=credentials)
project = 'my-project' # 改为自己的项目 ID
zone = 'us-central1-a' # 改为自己想要的区域和区域
instance_name = 'my-instance' # 改为自己想要的实例名称
config =
'name': instance_name,
'machineType': f'zones/zone/machineTypes/n1-standard-1',
'disks': [
'boot': True,
'autoDelete': True,
'initializeParams':
'sourceImage': 'projects/debian-cloud/global/images/family/debian-10',
],
'networkInterfaces': [
'network': 'global/networks/default',
'accessConfigs': [
'type': 'ONE_TO_ONE_NAT',
'name': 'External NAT'
]
],
'serviceAccounts': [
'email': 'default',
'scopes': [
'https://www.googleapis.com/auth/cloud-platform'
]
]
compute.instances().insert(project=project, zone=zone, body=config).execute()
print(f'VM instance instance_name was created.')
启动和停
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
compute = discovery.build('compute', 'v1', credentials=credentials)
project = 'my-project' # 改为自己的项目 ID
zone = 'us-central1-a' # 改为自己想要的区域和区域
instance_name = 'my-instance' # 改为自己想要的实例名称
# 启动 VM 实例
compute.instances().start(project=project, zone=zone, instance=instance_name).execute()
print(f'VM instance instance_name was started.')
# 停止 VM 实例
compute.instances().stop(project=project, zone=zone, instance=instance_name).execute()
print(f'VM instance instance_name was stopped
用 Python SDK 启动和停止 VM 实例的示例代码:
如何使用服务帐户在 gcp 中设置正确的 iam 策略
【中文标题】如何使用服务帐户在 gcp 中设置正确的 iam 策略【英文标题】:How can i set right iam policy in gcp with an service account 【发布时间】:2017-06-29 13:42:37 【问题描述】:我在 dns API(可能是其他 api 条目)上的 GCP iam 策略跨项目有问题。 对于 gcp 管理,我使用 gcloud 命令和 terraform。
检查我的设置: 第一个 gcp 项目:myproject-cloud。此项目托管一个 dns 托管区域。
具有帐户服务的第二个项目 (akecld-test-demo)。此帐户与 terraform 一起用于创建实例、磁盘等...没问题。我使用 gcloud 来确认 dns api 的错误设置。
当我想在 dns 区域中添加(或列出)一个条目(在第一个项目中设置并保留)时,我遇到 403 错误。
gcloud --account=provisioner@akecld-test-demo.iam.gserviceaccount.com dns managed-zones list --project=myproject-cloud
API [dns.googleapis.com] not enabled on project [xxxxxxxxx]....
dns api 适用于在第一个项目中创建的服务帐户,但不适用于其他项目中托管的服务帐户。
我已添加 iam 政策:
gcloud projects add-iam-policy-binding myproject-cloud --member="serviceAccount:provisioner@akecld-test-demo.iam.gserviceaccount.com" --role="roles/dns.admin"
我找不到要添加的正确角色或策略..
【问题讨论】:
仅供参考:您需要在第二个项目中启用 DNS API,而不仅仅是第一个...现在可以使用了!! 【参考方案1】:您需要在第二个项目中启用 DNS API,而不仅仅是第一个... 现在可以了!!
【讨论】:
以上是关于47了解公有云平台 GCP 的基本服务和使用方法,包括 Compute EngineCloud Storage的主要内容,如果未能解决你的问题,请参考以下文章