

在这篇文章中,我们将在terraform的帮助下配置一个云存储桶并维护它。
让我们先来了解一下云存储
什么是云存储(Buckets)?
云存储是谷歌云平台的一个对象存储系统。这里的对象可以是任何类型的,可以是文件,也可以是大的二进制对象。这些对象被组织到桶中,重要的是要记住,云存储不是一个文件系统。它可以被称为一种服务,接收、存储和检索文件或对象。它也可以从一个虚拟机上访问。
每个存储对象都可以通过一个URL唯一寻址,你也可以授予IAM角色,使任何应用程序能够读写桶。
创建一个Bucket?
在谷歌云中创建一个Bucket是非常简单的,你可以通过各种方式来创建一个Bucket,比如说。
- 通过控制台
- 通过Gcloud Cli
- IAC
在这篇博客中,我们将使用terraform,这是一个基础设施作为代码的工具,我们将学习如何用它来创建一个Bucket。
让我们先创建一个Main.tf文件
为terraform添加提供者
每当我们想使用terraform时,我们要做的第一件事就是定义一个提供者,在我们今天的例子中是谷歌。
provider "google" {
credentials = file("~/gcp/access-keys.json")
project = var.project_id
}
在提供者中,我们还定义了用于认证的凭证的路径,也提到了项目ID。
创建一个Bucket资源的变量文件
在创建Bucket资源之前,让我们先创建一些我们将要使用的变量。
variable "bucket_name" {
type = string
description = "Bucket name"
}
variable "bucket_location" {
type = string
default = "us-east1"
}
variable "project_id" {
type = string
}
variable "storage_class" {
type = string
}
我们已经定义了这四个变量,即:
- Bucket name - 这将被用来定义Bucket的名字
- Bucket location - GCS的位置
- 项目ID--它定义了我们将使用的项目ID
- 存储类 - 它将定义桶的存储类。
创建一个谷歌存储桶资源
resource "google_storage_bucket" "default" {
name = var.bucket_name
storage_class = var.storage_class
location = var.bucket_location
}
在这里你也可以为这个桶启用版本管理或加密和生命周期 你可以在官方的terraform文档中探索这些资源。我们在这里使用的存储类别是REGIONAL,如果你没有提供一个存储类别,那么谷歌默认给出的存储类别是STANDARD。它也支持其他选项,如MULTI_REGIONAL、NEARLINE、COLD LINE和ARCHIVE。你可以根据你的用例描述选择其中任何一个。
让我们添加另一个文件terraform.tfvars,并为我们创建的变量传递值。
bucket_name = "my-bucket-tf"
storage_class = "REGIONAL"
project_id = "neon-semiotics-351410"
让我们在terraform的帮助下配置这些资源
terraform init


运行terraform计划


Terraform计划看起来很好,现在我们可以运行terraform应用程序了。


terraform计划也是成功的,你可以看到它已经创建了资源,现在为了验证它,我们可以登录到控制台,检查它是否创建了这个资源。


你可以看到它已经创建了你的GCS资源,现在你可以用它来存储。
总结
在这篇文章中,我们看到了如何在Terraform的帮助下提供一个GCS桶,你也可以用它来存储你的tfstate。