通过Terraform创建GCP Pubsub

news2024/11/23 16:34:04

1 简介

Terraform是管理许多平台的基础设施的工具,如AWS、GCP和Azure。这篇文章将讲解如何通过Terraform来管理GCP Pub/Sub。

创建GCP项目请参考:初始化一个GCP项目并用gcloud访问操作

2 Terraform创建Pub/Sub

2.1 下载Terraform插件

我们需要安装GCP的Terraform插件来管理GCP资源:

# 设置插件目录
$ export TERRAFORM_PLUGIN=/Users/larry/Software/terraform/plugins
# 创建目录
$ mkdir -p ${TERRAFORM_PLUGIN}/registry.terraform.io/hashicorp/google/4.0.0/darwin_amd64
$ cd ${TERRAFORM_PLUGIN}/registry.terraform.io/hashicorp/google/4.0.0/darwin_amd64
# 下载
$ wget https://releases.hashicorp.com/terraform-provider-google/4.0.0/terraform-provider-google_4.0.0_darwin_amd64.zip
# 解压
$ unzip terraform-provider-google_4.0.0_darwin_amd64.zip

2.2 准备Terraform代码

需要提供Terraform代码理管理Pub/Sub,更多细节请参考: Terrafrom GCP.

版本文件version.tf:

terraform {
  required_version = "= 1.0.11"
  required_providers {

    google = {
      source  = "hashicorp/google"
      version = "= 4.0.0"
    }
  }
}

主文件main.tf:

provider "google" {
  project     = "pkslow"
}

resource "google_pubsub_topic" "pkslow-poc" {
  name = "pkslow-poc"
}

resource "google_pubsub_subscription" "pkslow-poc" {
  name  = "pkslow-poc"
  topic = google_pubsub_topic.pkslow-poc.name

  labels = {
    foo = "bar"
  }

  # 20 minutes
  message_retention_duration = "1200s"
  retain_acked_messages      = true

  ack_deadline_seconds = 20

  expiration_policy {
    ttl = "300000.5s"
  }
  retry_policy {
    minimum_backoff = "10s"
  }

  enable_message_ordering    = true
}

2.3 初始化和变更

指定插件目录初始化:

$ terraform init -plugin-dir=${TERRAFORM_PLUGIN}

使变更生效,就会在GCP上创建对应的资源:

$ terraform apply -auto-approve

如果没有发生错误,则意味着创建成功,我们检查一下:

$ gcloud pubsub topics list
---
name: projects/pkslow/topics/pkslow-poc

$ gcloud pubsub subscriptions list
---
ackDeadlineSeconds: 20
enableMessageOrdering: true
expirationPolicy:
  ttl: 300000.500s
labels:
  foo: bar
messageRetentionDuration: 1200s
name: projects/pkslow/subscriptions/pkslow-poc
pushConfig: {}
retainAckedMessages: true
retryPolicy:
  maximumBackoff: 600s
  minimumBackoff: 10s
topic: projects/pkslow/topics/pkslow-poc

注意:我们并没有提供任何密码或密钥,那Terraform怎么可以直接操作我的GCP资源呢?因为它会根据环境变量GOOGLE_APPLICATION_CREDENTIALS来获取。

3 发送和接收消息

我们通过gcloud来发送消息到Pub/Sub上:

$ gcloud pubsub topics publish pkslow-poc --message="www.pkslow.com"
messageIds:
- '3491736520339885'

$ gcloud pubsub topics publish pkslow-poc --message="Larry Deng"
messageIds:
- '3491738650256958'

$ gcloud pubsub topics publish pkslow-poc --message="Hi, pkslower"
messageIds:
- '3491739306095970'

从Pub/Sub拉取消息:

$ gcloud pubsub subscriptions pull pkslow-poc --auto-ack

我们还能在GCP界面上监控对应的队列,十分方便:

4 代码

代码在 GitHub上: https://github.com/LarryDpk/pkslow-samples

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Blende UV映射01】创建UV 使用UV贴图处理纹理

写在前面 这是进行云渲染的最后一步,实践!! 会跟着这个Blender 2.8 UV Mapping教程快速学习一边UV映射的东西,已经是最最最最基础的了。 本文是教程的P1-P7的过程记录。 1 UV映射 拿一个3D物体,怎么去切割它&…

1301. C 循环(扩展欧几里得算法)

题目如下&#xff1a; 思路 or 题解: 抽象出数学公式&#xff1a; ak∗c≡b(mod1<<k)a k * c \equiv b (mod\ 1 << k)ak∗c≡b(mod 1<<k) 等价&#xff1a; x∗c−y∗(1<<k)b−ax * c - y * (1 << k) b - ax∗c−y∗(1<<k)b−a 用扩展欧…

[Python逆向] 逆向Pyinstaller打包的exe文件源码及保护

Python逆向Pyinstaller打包的exe文件源码及保护 写在前面 我们都知道可以使用Pyinstaller库可将.py文件编译成.exe文件运行&#xff0c;这篇文章我们就从将脚本编译成.exe并将.exe的源码内容反编译出源文件&#xff0c;再顺便谈谈如何防止被逆向。 环境工具 Python 3.6&#x…

(一)MicroPython——WIFI点灯

目录 学习目标 成果展示 硬件知识 代码 总结 学习目标 成果展示 预备知识 代码 总结 学习目标 我们今天来学习有关MicroPython的知识点&#xff0c;相比于用C语言来开发&#xff0c;MicroPython有许多的优点&#xff0c;比如可以交互&#xff0c;有大量的库可以调…

Allegro如何把快速BUS组高亮成不同颜色操作指导

Allegro如何把快速BUS组高亮成不同颜色操作指导 在做PCB设计的时候,会需要把BUS组高亮成不同颜色,方便评估与布线,Allegro支持快速把BUS高亮成不同的颜色,如下图 具体操作如下 打开颜色管理器出现颜色管理器

1576_AURIX_TC275_MTU控制与状态寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 在这一页之前&#xff0c;连续有好几个寄存器都是预留的&#xff0c;因此可以直接跳过。访问使能寄存器的功能&#xff0c;从描述看其实是非常熟悉的&#xff0c;因为这个描述的模板可以从…

Java多线程:线程通信:生产者 和 消费者 || 顺序打印

Java多线程&#xff1a;线程通信&#xff1a;生产者 和 消费者 || 顺序打印 每博一文案 靠谱&#xff0c;是最高级的聪明&#xff1a;师父说&#xff1a;人生一回&#xff0c;道义一场。你对人对事的态度&#xff0c;藏着你一生的福报。 千金难买好人缘&#xff0c;人活的就是…

Android编译Skia库

Android编译Skia库 本文档提供两种方法编译Skia库 使用aosp源码进行编译使用skia源码进行编译 两种编译方法都可以编译,并且都可以使用在多个平台中,且可以使用在不同Android版本中 使用aosp源码编译 第一步是拿到aosp的源码.因为写这篇教程,使用的是msm8996的源码,因此,我…

Armitage图形化前端

开源免费图形前端 ● 作者自称是众多不会使用metasploit的安全专家之一&#xff08;命令行&#xff09; ● MSF基于命令行&#xff0c;缺少直观的GUI图形用户接口 Armitage只是调用MSF的漏洞利用能力 ● Armitage的每一个GUI操作都可以对应MSF中的一条命令 红队团队合作模拟…

OSCP vulhub LORD OF THE ROOT: 1.0.1

vulhub LORD OF THE ROOT: 1.0.1靶场信息&安装Description一、信息收集第一种ssh爆破第二种猜二、漏洞探测三、漏洞利用四、提权第二种方法&#xff1a;udf提权第三种缓冲区溢出提权靶场信息&安装 地址&#xff1a;https://www.vulnhub.com/entry/lord-of-the-root-10…

APSIM练习:向管理组件添加额外规则

“标准”作物管理组件没有提供很多选项来决定何时播种作物——很可能应该考虑一系列额外的种植规则&#xff08;例如&#xff0c;土壤是否足够干燥以驱动拖拉机过去&#xff1f;&#xff09;&#xff0c;并且在播种时应采取额外措施&#xff08;例如添加一些肥料&#xff09;。…

Tofu目标识别跟踪模块介绍

1.简介Tofu3 是多波段视频物体识别跟踪模块&#xff0c;支持可见光视频与红外视频的输入&#xff0c;支持激光补光变焦自适应控制&#xff0c;支持视频下的多类型物体检测、识别、跟踪等功能。产品支持视频编码、设备管理、目标检测、深度学习识别、跟踪等功能&#xff0c;提供…

服务器防勒索病毒场景分析经验分享

服务器防勒索病毒 l 场景描述 互联网飞速发展&#xff0c;各企业均搭建了自己的服务器。包括文件服务器、代码服务器、业务系统服务器、数据库服务器等。目前大多数企业使用的服务器系统以Windows Server和Linux&#xff08;Centos&#xff09;居多&#xff0c;但随着国产操作…

python从入门到实践————图形界面(上)

系列文章目录 文章目录系列文章目录前言窗体组件窗体显示显示窗体文本显示项目实践总结前言 图形用户接口&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;是人机交互的重要技术手段&#xff0c;在Python中利用tkinter模块就可以方便地实现图形界面。 在你p…

每日一题:Leetcode203 移除链表元素

文章目录 系列&#xff1a;链表专练 语言&#xff1a;java & go 题目来源&#xff1a;Leetcode203 移除链表元素 难度&#xff1a;简单 考点&#xff1a;头结点 && 虚拟头结点 思路和参考答案文章目录题目描述思路java参考代码go参考代码&#xff1a;题目描述 给…

xcelium——重要特性——提高编译仿真性能

以下图片来自于CadenceTECHTALK研讨会 解决编译仿真的瓶颈问题&#xff0c;提高整体性能 影响performance的因素 xcelium版本access rwccoverage收集snapshot过大&#xff0c;加载时间过长&#xff0c;可通过Zlib加快加快snapshot加载 编译/仿真添加选项&#xff1a; -new…

如何检查自己电脑是否被攻击了?

数据来源 本文仅用于信息安全的学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 通过系统命令排查账户安全 query user # 查看当前登录账户 lo…

21.字符串的概念,字符串的可修改性

字符串和指针 字符串的概念&#xff1a; 字符串就是以 ‘\0’ 结尾的若干字符的集合。字符串的地址&#xff0c;是第一个字符的地址。可以定义一个字符指针变量保存字符串的地址。比如&#xff1a; char* shelloworld"; 字符串的存储形式&#xff1a;数组、文字常量区、…

靶机测试haclabs-no_name

靶机地址https://www.vulnhub.com/entry/haclabs-no_name,429/靶机测试nmap扫描└─$ nmap -T5 -A 192.168.1.100 -oA hl-portsStarting Nmap 7.92 ( https://nmap.org ) at 2023-01-12 11:16 CST Nmap scan report for 192.168.1.100 Host is up (0.00040s latency). Not show…

获工信部认可!腾讯牵头的《零信任系统技术规范》入选工信部百项团标应用示范

近日&#xff0c;工信部发布《关于公布2022年团体标准应用示范项目的通告》&#xff0c;由腾讯安全牵头起草&#xff0c;公安部第三研究所、国家计算机网络应急技术处理协调中心、中国移动设计院等业内16家零信任厂商、测评机构及用户联合编制的中国第一部《零信任系统技术规范…