terraform/pdf-redactor/workflow.tf (40 lines of code) (raw):

# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. resource "google_service_account" "workflow" { account_id = "pdf-redactor-workflow-sa${local.app_suffix}" display_name = "SA for PDF Redactor Workflow" } resource "google_project_iam_member" "workflow_cloudrun_invoker" { project = var.project_id role = "roles/run.invoker" member = "serviceAccount:${google_service_account.workflow.email}" } resource "google_project_iam_member" "workflow_log_writer" { project = var.project_id role = "roles/logging.logWriter" member = "serviceAccount:${google_service_account.workflow.email}" } resource "google_project_iam_member" "workflow_event_receiver" { project = var.project_id role = "roles/eventarc.eventReceiver" member = "serviceAccount:${google_service_account.workflow.email}" } resource "google_workflows_workflow" "pdf_redactor" { name = "pdf-redactor-workflow${local.app_suffix}" region = var.wf_region description = "Workflow that redacts sensitive information from a single PDF file" service_account = google_service_account.workflow.id source_contents = templatefile( "${path.module}/templates/workflow.yaml", { pdf_splitter_url = google_cloud_run_v2_service.pdf_splitter.uri pdf_merger_url = google_cloud_run_v2_service.pdf_merger.uri dlp_runner_url = google_cloud_run_v2_service.dlp_runner.uri findings_writer_url = google_cloud_run_v2_service.findings_writer.uri working_bucket = google_storage_bucket.working_bucket.name output_bucket = google_storage_bucket.pdf_output_bucket.name dlp_template = google_data_loss_prevention_inspect_template.dlp_pdf_template.id } ) depends_on = [ module.project_services, ] }