terraform-serverless/project.tf (32 lines of code) (raw):
# Enable services
resource "google_project_service" "vision" {
service = "vision.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "run" {
service = "run.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "iam" {
service = "iam.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "cloudbuild" {
service = "cloudbuild.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "cloudfunctions" {
service = "cloudfunctions.googleapis.com"
disable_on_destroy = false
}
# Create a service account
resource "google_service_account" "cats_worker" {
account_id = "cats-worker"
display_name = "Cats Worker SA"
}
# Set permissions
resource "google_project_iam_binding" "service_permissions" {
for_each = toset([
"run.invoker", "cloudfunctions.invoker"
])
role = "roles/${each.key}"
members = [local.cats_worker_sa]
depends_on = [google_service_account.cats_worker]
}