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 实例:

  1. 在 GCP 控制台中导航到 Compute Engine 页面。
  2. 单击“创建实例”按钮。
  3. 在“实例详细信息”页面上,填写实例名称、所需的机器类型、区域和区域,以及其他设置。
  4. 单击“创建”按钮。

以下是使用 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的主要内容,如果未能解决你的问题,请参考以下文章

IDC企业如何选择合适公有云管理平台?

从概念入手,了解AWS在IaasPaas,Saas层的服务

公有云API的认证方式:Token认证和AK/SK认证

从“集装箱运输”了解容器技术

公有云与私有云的概念差别在哪

全托管云原生 MQTT 消息服务EMQ X Cloud 更新支持GCP,集齐全球主流云平台部署