😪
TerraformでPub/Subのサブスクリプション作ろうとしたらハマった
やりたかったこと
pushサブスクリプションに以下のような認証認可のオプションがある。
これを有効にしたサブスクリプションをTerraformで作成したかった。コード
resource "google_pubsub_topic" "topic" {
name = "test-topic"
}
resource "google_pubsub_subscription" "subscription" {
name = "test-subscription"
topic = google_pubsub_topic.topic.name
expiration_policy {
ttl = ""
}
push_config {
push_endpoint = var.endpoint
oidc_token {
service_account_email = var.subscription_service_account_email
}
}
}
エラー
╷
│ Error: Error creating Subscription: googleapi: Error 500: A service error has occurred. Please retry your request. If the error persists, please report it. [code=e8c0]
│
│ with module.pubsub.google_pubsub_subscription.subscription,
│ on ../../modules/pubsub/main.tf line 9, in resource "google_pubsub_subscription" "subscription":
│ 9: resource "google_pubsub_subscription" "subscription" {
│
このエラーでググってみてもよくわからない...
解決
oidc_token {
service_account_email = var.subscription_service_account_email
}
で設定しているサービスアカウントが存在しないものだった。
正しいサービスアカウントを設定して解決。
Discussion