返回

助力物联网:在谷歌云端一键部署EMQX MQTT Broker

后端

前言

MQTT(消息队列遥测传输)是一种轻量级、高可靠的发布/订阅协议,专为物联网而设计。EMQX MQTT Broker 是一个功能强大的开源 MQTT Broker,可为物联网设备提供稳定可靠的消息传递服务。在本教程中,我们将指导您如何使用 Terraform 在 Google Cloud Platform (GCP) 上部署 EMQX MQTT Broker,让您轻松开始使用这一流行的消息传递协议。

先决条件

在开始之前,您需要准备以下内容:

  • 一个 Google Cloud Platform (GCP) 账号
  • Terraform 已安装在您的系统中
  • 一个文本编辑器

步骤 1:设置 GCP 项目

首先,您需要创建一个 GCP 项目。登录到 GCP 控制台并点击“创建项目”。输入项目名称并选择一个区域,然后点击“创建”。

步骤 2:创建服务账户

接下来,您需要创建一个服务账户,以便 Terraform 可以访问您的 GCP 资源。在 GCP 控制台的“服务账户”页面上,点击“创建服务账户”。输入服务账户名称并选择“角色”。对于 EMQX MQTT Broker,您需要选择“云端平台”和“所有者”角色。然后点击“创建”。

步骤 3:编写 Terraform 配置文件

现在,您需要创建一个 Terraform 配置文件,以便 Terraform 可以根据您的需求创建 GCP 资源。在您的文本编辑器中创建一个名为“main.tf”的文件,并输入以下内容:

provider "google" {
  credentials = "~/.google/credentials"
  project     = "YOUR_GCP_PROJECT_ID"
}

resource "google_compute_instance" "emqx" {
  name         = "emqx-instance"
  machine_type = "e2-standard-2"
  zone         = "us-central1-a"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    name = "default"
  }
}

resource "google_service_account" "emqx-service-account" {
  account_id   = "emqx-service-account"
  display_name = "EMQX Service Account"
}

resource "google_compute_firewall" "emqx-firewall" {
  name    = "emqx-firewall"
  network = "default"
  allow {
    protocol = "tcp"
    ports    = ["1883", "8883"]
  }
  target_tags = ["emqx"]
}

resource "google_compute_instance_template" "emqx-instance-template" {
  name = "emqx-instance-template"
  machine_type = "e2-standard-2"
  disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    name = "default"
  }
  metadata = {
    "startup-script" = "#!/bin/bash\napt-get update && apt-get install -y openjdk-8-jre-headless\nwget https://www.emqx.io/downloads/broker/emqx-broker-4.4.8.zip\nunzip emqx-broker-4.4.8.zip\ncd emqx-broker-4.4.8\nmkdir logs data\n./bin/emqx start"
  }
}

resource "google_compute_instance_group_manager" "emqx-instance-group-manager" {
  name = "emqx-instance-group-manager"
  zone  = "us-central1-a"
  version {
    instance_template = "emqx-instance-template"
    name             = "v1"
  }
}

请将“YOUR_GCP_PROJECT_ID”替换为您的 GCP 项目 ID。

步骤 4:初始化 Terraform

现在,您需要初始化 Terraform。在终端中进入包含“main.tf”文件的目录,并运行以下命令:

terraform init

步骤 5:应用 Terraform 配置

最后,您需要应用 Terraform 配置。在终端中运行以下命令:

terraform apply

Terraform 将会创建所有必要的 GCP 资源,包括虚拟机实例、服务账户、防火墙和实例组管理器。这可能需要一段时间。

步骤 6:连接到 EMQX MQTT Broker

一旦 Terraform 应用成功,您就可以使用 MQTT 客户端连接到 EMQX MQTT Broker。您可以使用任意 MQTT 客户端,例如 MQTT.fx。输入 EMQX MQTT Broker 的地址(即虚拟机实例的公有 IP 地址)和端口(默认端口为 1883),然后点击“连接”。

结论

恭喜您!您现在已经成功地使用 Terraform 在 GCP 上部署了 EMQX MQTT Broker。现在,您就可以开始使用这一强大的 MQTT Broker 来构建您的物联网应用了。