创建1个Topic 和 2个 subscription
我们可以用terraform 去创建1个topic 和 2个subscriptions
# topic
resource "google_pubsub_topic" "topic_a" {name = "TopicA"project = var.project_id
}# subscriptions
resource "google_pubsub_subscription" "subscription_a1" {name = "SubscriptionA1"topic = google_pubsub_topic.topic_a.nameproject = var.project_id
}resource "google_pubsub_subscription" "subscription_a2" {name = "SubscriptionA2"topic = google_pubsub_topic.topic_a.nameproject = var.project_id
}
在GCP 上验证
获得 这个Topic 的publish Rest url
获得 这个Topic 的publish Rest url
其实GCP products 的 rest url 有规律的
POST https://pubsub.googleapis.com/v1/projects/{project_id}topics/{topic_name}:publish
获得 这个Topic 的publish Rest url
基于某个gcp 账号获得1个临时的token
用个人账号 登录 gcloud
gcloud auth login
或者
用service account 登录 gcloud
gcloud auth activate-service-account --key-file=[PATH_TO_JSON_KEY_FILE]
然后用下面命令获得1个token
gcloud auth print-access-token
请注意这个token只有1小时有效时间
设置postman request
我们在postman 新建1个 request
类型是Post
url 是 https://pubsub.googleapis.com/v1/projects/{project_id}topics/{topic_name}:publish
Content-Type 是 application/json
加1个header
key = Authrozation
value = Bearer <<临时token>>
payload 是
{"messages": [{"data": "SGVsbG8sIFdvcmxkIQ==","attributes": {"attribute1": "value1","attribute2": "value2"}}]
}
其中data 里的数据必须用base 64加密
测试
发送成功是, api 会返回messageid
Console里也可以查看消息