This commit is contained in:
johnpccd 2025-05-24 17:36:59 +02:00
parent 4723dec85a
commit 6257362ac2
4 changed files with 405 additions and 370 deletions

View File

@ -14,7 +14,8 @@ function show_help {
echo " --provision Run Terraform to provision cloud resources"
echo " --build Build and push Docker image"
echo " --deploy Deploy to Cloud Run"
echo " --all Do all of the above"
echo " --destroy Destroy cloud resources with Terraform"
echo " --all Do all of the above (except destroy)"
echo " --help Show this help message"
exit 0
}
@ -28,6 +29,7 @@ fi
PROVISION=false
BUILD=false
DEPLOY=false
DESTROY=false
while [[ $# -gt 0 ]]; do
case "$1" in
@ -43,6 +45,10 @@ while [[ $# -gt 0 ]]; do
DEPLOY=true
shift
;;
--destroy)
DESTROY=true
shift
;;
--all)
PROVISION=true
BUILD=true
@ -68,6 +74,35 @@ fi
echo "Using Google Cloud project: $PROJECT_ID"
echo "==================================="
# Destroy resources with Terraform
if [ "$DESTROY" = true ]; then
echo "WARNING: This will destroy all cloud resources managed by Terraform!"
echo "This action cannot be undone."
read -p "Are you sure you want to continue? (yes/no): " confirm
if [ "$confirm" != "yes" ]; then
echo "Destroy operation cancelled."
exit 0
fi
echo "Destroying cloud resources with Terraform..."
cd "$(dirname "$0")/terraform"
# Check if terraform.tfvars exists
if [ ! -f terraform.tfvars ]; then
echo "ERROR: terraform.tfvars not found. Cannot proceed with destroy."
echo "Make sure you have provisioned resources first."
exit 1
fi
terraform init
terraform destroy -auto-approve
cd - > /dev/null
echo "Resources destroyed successfully."
exit 0
fi
# Provision resources with Terraform
if [ "$PROVISION" = true ]; then
echo "Provisioning cloud resources with Terraform..."

View File

@ -99,7 +99,7 @@ apt-get install -y htop iotop nethogs
# Create a simple health check script
cat > /opt/qdrant/health_check.sh << 'EOF'
#!/bin/bash
response=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:6333/health)
response=$(curl -s -o /dev/null -w "%%{http_code}" http://localhost:6333/health)
if [ "$response" = "200" ]; then
echo "Qdrant is healthy"
exit 0

View File

@ -1,371 +1,9 @@
{
"version": 4,
"terraform_version": "1.10.1",
"serial": 41,
"serial": 53,
"lineage": "a183cd95-f987-8698-c6dd-84e933c394a5",
"outputs": {
"container_registry_url": {
"value": "gcr.io/gen-lang-client-0424120530/sereact",
"type": "string"
},
"pubsub_dlq_topic_name": {
"value": "image-processing-topic-dlq",
"type": "string"
},
"pubsub_subscription_name": {
"value": "image-processing-topic-subscription",
"type": "string"
},
"pubsub_topic_name": {
"value": "image-processing-topic",
"type": "string"
},
"storage_bucket_name": {
"value": "sereact-storage-bucket",
"type": "string"
}
},
"resources": [
{
"mode": "data",
"type": "google_project",
"name": "current",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"auto_create_network": null,
"billing_account": "00CA97-62E5BD-4A62B5",
"deletion_policy": "PREVENT",
"effective_labels": {
"generative-language": "enabled"
},
"folder_id": null,
"id": "projects/gen-lang-client-0424120530",
"labels": {
"generative-language": "enabled"
},
"name": "Gemini API",
"number": "761163285547",
"org_id": null,
"project_id": "gen-lang-client-0424120530",
"tags": null,
"terraform_labels": {
"generative-language": "enabled"
}
},
"sensitive_attributes": []
}
]
},
{
"mode": "managed",
"type": "google_project_service",
"name": "services",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"index_key": "cloudresourcemanager.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/cloudresourcemanager.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "cloudresourcemanager.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "containerregistry.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/containerregistry.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "containerregistry.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "firestore.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/firestore.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "firestore.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "run.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/run.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "run.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "storage.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/storage.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "storage.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
}
]
},
{
"mode": "managed",
"type": "google_pubsub_subscription",
"name": "image_processing_dlq",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"ack_deadline_seconds": 10,
"bigquery_config": [],
"cloud_storage_config": [],
"dead_letter_policy": [],
"effective_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"enable_exactly_once_delivery": false,
"enable_message_ordering": false,
"expiration_policy": [
{
"ttl": "2678400s"
}
],
"filter": "",
"id": "projects/gen-lang-client-0424120530/subscriptions/image-processing-topic-dlq-subscription",
"labels": {
"component": "image-processing-dlq",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "2592000s",
"name": "image-processing-topic-dlq-subscription",
"project": "gen-lang-client-0424120530",
"push_config": [],
"retain_acked_messages": true,
"retry_policy": [],
"terraform_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null,
"topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq"
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19",
"dependencies": [
"google_pubsub_topic.image_processing_dlq"
]
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic",
"name": "image_processing",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"effective_labels": {
"component": "image-processing",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic",
"ingestion_data_source_settings": [],
"kms_key_name": "",
"labels": {
"component": "image-processing",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "",
"message_storage_policy": [],
"name": "image-processing-topic",
"project": "gen-lang-client-0424120530",
"schema_settings": [],
"terraform_labels": {
"component": "image-processing",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic",
"name": "image_processing_dlq",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"effective_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq",
"ingestion_data_source_settings": [],
"kms_key_name": "",
"labels": {
"component": "image-processing-dlq",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "",
"message_storage_policy": [],
"name": "image-processing-topic-dlq",
"project": "gen-lang-client-0424120530",
"schema_settings": [],
"terraform_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic_iam_binding",
"name": "image_processing_publisher",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"condition": [],
"etag": "BwY14zaElfE=",
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic/roles/pubsub.publisher",
"members": [
"serviceAccount:761163285547-compute@developer.gserviceaccount.com"
],
"project": "gen-lang-client-0424120530",
"role": "roles/pubsub.publisher",
"topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic"
},
"sensitive_attributes": [],
"private": "bnVsbA==",
"dependencies": [
"data.google_project.current",
"google_pubsub_topic.image_processing"
]
}
]
},
{
"mode": "managed",
"type": "google_storage_bucket",
"name": "app_bucket",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 3,
"attributes": {
"autoclass": [],
"cors": [],
"custom_placement_config": [],
"default_event_based_hold": false,
"effective_labels": {
"goog-terraform-provisioned": "true"
},
"enable_object_retention": false,
"encryption": [],
"force_destroy": false,
"hierarchical_namespace": [
{
"enabled": false
}
],
"id": "sereact-storage-bucket",
"labels": null,
"lifecycle_rule": [],
"location": "US-CENTRAL1",
"logging": [],
"name": "sereact-storage-bucket",
"project": "gen-lang-client-0424120530",
"project_number": 761163285547,
"public_access_prevention": "inherited",
"requester_pays": false,
"retention_policy": [],
"rpo": null,
"self_link": "https://www.googleapis.com/storage/v1/b/sereact-storage-bucket",
"soft_delete_policy": [
{
"effective_time": "2025-05-24T15:17:40.181Z",
"retention_duration_seconds": 604800
}
],
"storage_class": "STANDARD",
"terraform_labels": {
"goog-terraform-provisioned": "true"
},
"time_created": "2025-05-24T15:17:40.181Z",
"timeouts": null,
"uniform_bucket_level_access": true,
"updated": "2025-05-24T15:17:40.181Z",
"url": "gs://sereact-storage-bucket",
"versioning": [],
"website": []
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInJlYWQiOjI0MDAwMDAwMDAwMCwidXBkYXRlIjoyNDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjMifQ==",
"dependencies": [
"google_project_service.services"
]
}
]
}
],
"outputs": {},
"resources": [],
"check_results": null
}

View File

@ -1,9 +1,371 @@
{
"version": 4,
"terraform_version": "1.10.1",
"serial": 28,
"serial": 41,
"lineage": "a183cd95-f987-8698-c6dd-84e933c394a5",
"outputs": {},
"resources": [],
"outputs": {
"container_registry_url": {
"value": "gcr.io/gen-lang-client-0424120530/sereact",
"type": "string"
},
"pubsub_dlq_topic_name": {
"value": "image-processing-topic-dlq",
"type": "string"
},
"pubsub_subscription_name": {
"value": "image-processing-topic-subscription",
"type": "string"
},
"pubsub_topic_name": {
"value": "image-processing-topic",
"type": "string"
},
"storage_bucket_name": {
"value": "sereact-storage-bucket",
"type": "string"
}
},
"resources": [
{
"mode": "data",
"type": "google_project",
"name": "current",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"auto_create_network": null,
"billing_account": "00CA97-62E5BD-4A62B5",
"deletion_policy": "PREVENT",
"effective_labels": {
"generative-language": "enabled"
},
"folder_id": null,
"id": "projects/gen-lang-client-0424120530",
"labels": {
"generative-language": "enabled"
},
"name": "Gemini API",
"number": "761163285547",
"org_id": null,
"project_id": "gen-lang-client-0424120530",
"tags": null,
"terraform_labels": {
"generative-language": "enabled"
}
},
"sensitive_attributes": []
}
]
},
{
"mode": "managed",
"type": "google_project_service",
"name": "services",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"index_key": "cloudresourcemanager.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/cloudresourcemanager.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "cloudresourcemanager.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "containerregistry.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/containerregistry.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "containerregistry.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "firestore.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/firestore.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "firestore.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "run.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/run.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "run.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
},
{
"index_key": "storage.googleapis.com",
"schema_version": 0,
"attributes": {
"disable_dependent_services": null,
"disable_on_destroy": false,
"id": "gen-lang-client-0424120530/storage.googleapis.com",
"project": "gen-lang-client-0424120530",
"service": "storage.googleapis.com",
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
}
]
},
{
"mode": "managed",
"type": "google_pubsub_subscription",
"name": "image_processing_dlq",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"ack_deadline_seconds": 10,
"bigquery_config": [],
"cloud_storage_config": [],
"dead_letter_policy": [],
"effective_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"enable_exactly_once_delivery": false,
"enable_message_ordering": false,
"expiration_policy": [
{
"ttl": "2678400s"
}
],
"filter": "",
"id": "projects/gen-lang-client-0424120530/subscriptions/image-processing-topic-dlq-subscription",
"labels": {
"component": "image-processing-dlq",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "2592000s",
"name": "image-processing-topic-dlq-subscription",
"project": "gen-lang-client-0424120530",
"push_config": [],
"retain_acked_messages": true,
"retry_policy": [],
"terraform_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null,
"topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq"
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19",
"dependencies": [
"google_pubsub_topic.image_processing_dlq"
]
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic",
"name": "image_processing",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"effective_labels": {
"component": "image-processing",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic",
"ingestion_data_source_settings": [],
"kms_key_name": "",
"labels": {
"component": "image-processing",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "",
"message_storage_policy": [],
"name": "image-processing-topic",
"project": "gen-lang-client-0424120530",
"schema_settings": [],
"terraform_labels": {
"component": "image-processing",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic",
"name": "image_processing_dlq",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"effective_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq",
"ingestion_data_source_settings": [],
"kms_key_name": "",
"labels": {
"component": "image-processing-dlq",
"environment": "dev",
"service": "sereact"
},
"message_retention_duration": "",
"message_storage_policy": [],
"name": "image-processing-topic-dlq",
"project": "gen-lang-client-0424120530",
"schema_settings": [],
"terraform_labels": {
"component": "image-processing-dlq",
"environment": "dev",
"goog-terraform-provisioned": "true",
"service": "sereact"
},
"timeouts": null
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
}
]
},
{
"mode": "managed",
"type": "google_pubsub_topic_iam_binding",
"name": "image_processing_publisher",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 0,
"attributes": {
"condition": [],
"etag": "BwY14zaElfE=",
"id": "projects/gen-lang-client-0424120530/topics/image-processing-topic/roles/pubsub.publisher",
"members": [
"serviceAccount:761163285547-compute@developer.gserviceaccount.com"
],
"project": "gen-lang-client-0424120530",
"role": "roles/pubsub.publisher",
"topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic"
},
"sensitive_attributes": [],
"private": "bnVsbA==",
"dependencies": [
"data.google_project.current",
"google_pubsub_topic.image_processing"
]
}
]
},
{
"mode": "managed",
"type": "google_storage_bucket",
"name": "app_bucket",
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
"instances": [
{
"schema_version": 3,
"attributes": {
"autoclass": [],
"cors": [],
"custom_placement_config": [],
"default_event_based_hold": false,
"effective_labels": {
"goog-terraform-provisioned": "true"
},
"enable_object_retention": false,
"encryption": [],
"force_destroy": false,
"hierarchical_namespace": [
{
"enabled": false
}
],
"id": "sereact-storage-bucket",
"labels": null,
"lifecycle_rule": [],
"location": "US-CENTRAL1",
"logging": [],
"name": "sereact-storage-bucket",
"project": "gen-lang-client-0424120530",
"project_number": 761163285547,
"public_access_prevention": "inherited",
"requester_pays": false,
"retention_policy": [],
"rpo": null,
"self_link": "https://www.googleapis.com/storage/v1/b/sereact-storage-bucket",
"soft_delete_policy": [
{
"effective_time": "2025-05-24T15:17:40.181Z",
"retention_duration_seconds": 604800
}
],
"storage_class": "STANDARD",
"terraform_labels": {
"goog-terraform-provisioned": "true"
},
"time_created": "2025-05-24T15:17:40.181Z",
"timeouts": null,
"uniform_bucket_level_access": true,
"updated": "2025-05-24T15:17:40.181Z",
"url": "gs://sereact-storage-bucket",
"versioning": [],
"website": []
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInJlYWQiOjI0MDAwMDAwMDAwMCwidXBkYXRlIjoyNDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjMifQ==",
"dependencies": [
"google_project_service.services"
]
}
]
}
],
"check_results": null
}