{"id":21401090,"url":"https://github.com/massdriver-cloud/gcp-cloud-function-pubsub","last_synced_at":"2026-03-19T20:13:37.210Z","repository":{"id":104128206,"uuid":"499373322","full_name":"massdriver-cloud/gcp-cloud-function-pubsub","owner":"massdriver-cloud","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-19T23:25:46.000Z","size":53,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-20T01:21:14.666Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://massdriver.cloud","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/massdriver-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-03T04:00:25.000Z","updated_at":"2024-09-27T17:47:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"e522c433-1775-49c8-afa0-c8a7c660b561","html_url":"https://github.com/massdriver-cloud/gcp-cloud-function-pubsub","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/massdriver-cloud/gcp-cloud-function-pubsub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massdriver-cloud%2Fgcp-cloud-function-pubsub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massdriver-cloud%2Fgcp-cloud-function-pubsub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massdriver-cloud%2Fgcp-cloud-function-pubsub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massdriver-cloud%2Fgcp-cloud-function-pubsub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/massdriver-cloud","download_url":"https://codeload.github.com/massdriver-cloud/gcp-cloud-function-pubsub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massdriver-cloud%2Fgcp-cloud-function-pubsub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29323965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T00:34:26.354Z","status":"ssl_error","status_checked_at":"2026-02-11T00:34:09.494Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T15:26:03.801Z","updated_at":"2026-02-11T01:02:39.152Z","avatar_url":"https://github.com/massdriver-cloud.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Massdriver][logo]][website]\n\n# gcp-cloud-function-pubsub\n\n[![Release][release_shield]][release_url]\n[![Contributors][contributors_shield]][contributors_url]\n[![Forks][forks_shield]][forks_url]\n[![Stargazers][stars_shield]][stars_url]\n[![Issues][issues_shield]][issues_url]\n[![MIT License][license_shield]][license_url]\n\n\nGoogle Cloud Function that attaches to a PubSub topic.\n\n\n---\n\n## Design\n\nFor detailed information, check out our [Operator Guide](operator.md) for this bundle.\n\n## Usage\n\nOur bundles aren't intended to be used locally, outside of testing. Instead, our bundles are designed to be configured, connected, deployed and monitored in the [Massdriver][website] platform.\n\n### What are Bundles?\n\nBundles are the basic building blocks of infrastructure, applications, and architectures in [Massdriver][website]. Read more [here](https://docs.massdriver.cloud/concepts/bundles).\n\n## Bundle\n\n### Params\n\nForm input parameters for configuring a bundle for deployment.\n\n\u003cdetails\u003e\n\u003csummary\u003eView\u003c/summary\u003e\n\n\u003c!-- PARAMS:START --\u003e\n## Properties\n\n- **`cloud_function_configuration`** *(object)*: . Cannot contain additional properties.\n  - **`entrypoint`** *(string)*: Name of the function that will be executed when the Google Cloud Function is triggered. Default: `app`.\n  - **`maximum_instances`** *(integer)*: The maximum number of Cloud Function instances to be running at one time. Minimum: `1`. Maximum: `3000`. Default: `5`.\n  - **`memory_mb`** *(integer)*: The total available memory given to the Cloud Function. Default: `128`.\n    - **Items** *(integer)*: Must be one of: `[128, 256, 512, 1028, 2048, 4096]`.\n  - **`minimum_instances`** *(integer)*: The minimum number of Cloud Function instances to be running at one time. Minimum: `0`. Maximum: `3000`. Default: `0`.\n  - **`runtime`** *(string)*: The language runtime to use in this Cloud Function. Default: `Node.js 16`.\n    - **Items** *(string)*: Must be one of: `['Node.js 16', 'Node.js 14', 'Python 3.9', 'Python 3.8', 'Go 1.16', 'Go 1.13', 'Java 17', 'Java 11', '.NET Core 3.1', 'Ruby 3.0', 'Ruby 2.7', 'PHP 7.4']`.\n## Examples\n\n  ```json\n  {\n      \"__name\": \"NodeJS No Cold Start\",\n      \"cloud_function_configuration\": {\n          \"minimum_instances\": 1,\n          \"runtime\": \"Node.js 16\"\n      }\n  }\n  ```\n\n  ```json\n  {\n      \"__name\": \"Java 17\",\n      \"cloud_function_configuration\": {\n          \"entrypoint\": \"functions.HelloWorld\",\n          \"memory_mb\": 1024,\n          \"runtime\": \"Java 17\"\n      }\n  }\n  ```\n\n\u003c!-- PARAMS:END --\u003e\n\n\u003c/details\u003e\n\n### Connections\n\nConnections from other bundles that this bundle depends on.\n\n\u003cdetails\u003e\n\u003csummary\u003eView\u003c/summary\u003e\n\n\u003c!-- CONNECTIONS:START --\u003e\n## Properties\n\n- **`gcp_authentication`** *(object)*: GCP Service Account. Cannot contain additional properties.\n  - **`data`** *(object)*\n    - **`auth_provider_x509_cert_url`** *(string)*: Auth Provider x509 Certificate URL. Default: `https://www.googleapis.com/oauth2/v1/certs`.\n\n      Examples:\n      ```json\n      \"https://example.com/some/path\"\n      ```\n\n      ```json\n      \"https://massdriver.cloud\"\n      ```\n\n    - **`auth_uri`** *(string)*: Auth URI. Default: `https://accounts.google.com/o/oauth2/auth`.\n\n      Examples:\n      ```json\n      \"https://example.com/some/path\"\n      ```\n\n      ```json\n      \"https://massdriver.cloud\"\n      ```\n\n    - **`client_email`** *(string)*: Service Account Email.\n\n      Examples:\n      ```json\n      \"jimmy@massdriver.cloud\"\n      ```\n\n      ```json\n      \"service-account-y@gmail.com\"\n      ```\n\n    - **`client_id`** *(string)*: .\n    - **`client_x509_cert_url`** *(string)*: Client x509 Certificate URL.\n\n      Examples:\n      ```json\n      \"https://example.com/some/path\"\n      ```\n\n      ```json\n      \"https://massdriver.cloud\"\n      ```\n\n    - **`private_key`** *(string)*: .\n    - **`private_key_id`** *(string)*: .\n    - **`project_id`** *(string)*: .\n    - **`token_uri`** *(string)*: Token URI. Default: `https://oauth2.googleapis.com/token`.\n\n      Examples:\n      ```json\n      \"https://example.com/some/path\"\n      ```\n\n      ```json\n      \"https://massdriver.cloud\"\n      ```\n\n    - **`type`** *(string)*: . Default: `service_account`.\n  - **`specs`** *(object)*\n    - **`gcp`** *(object)*: .\n      - **`project`** *(string)*\n      - **`region`** *(string)*: The GCP region to provision resources in.\n\n        Examples:\n        ```json\n        \"us-east1\"\n        ```\n\n        ```json\n        \"us-east4\"\n        ```\n\n        ```json\n        \"us-west1\"\n        ```\n\n        ```json\n        \"us-west2\"\n        ```\n\n        ```json\n        \"us-west3\"\n        ```\n\n        ```json\n        \"us-west4\"\n        ```\n\n        ```json\n        \"us-central1\"\n        ```\n\n- **`subnetwork`** *(object)*: A region-bound network for deploying GCP resources. Cannot contain additional properties.\n  - **`data`** *(object)*\n    - **`infrastructure`** *(object)*\n      - **`cidr`** *(string)*\n\n        Examples:\n        ```json\n        \"10.100.0.0/16\"\n        ```\n\n        ```json\n        \"192.24.12.0/22\"\n        ```\n\n      - **`gcp_global_network_grn`** *(string)*: GCP Resource Name (GRN).\n\n        Examples:\n        ```json\n        \"projects/my-project/global/networks/my-global-network\"\n        ```\n\n        ```json\n        \"projects/my-project/regions/us-west2/subnetworks/my-subnetwork\"\n        ```\n\n        ```json\n        \"projects/my-project/topics/my-pubsub-topic\"\n        ```\n\n        ```json\n        \"projects/my-project/subscriptions/my-pubsub-subscription\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/instances/my-redis-instance\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/clusters/my-gke-cluster\"\n        ```\n\n      - **`grn`** *(string)*: GCP Resource Name (GRN).\n\n        Examples:\n        ```json\n        \"projects/my-project/global/networks/my-global-network\"\n        ```\n\n        ```json\n        \"projects/my-project/regions/us-west2/subnetworks/my-subnetwork\"\n        ```\n\n        ```json\n        \"projects/my-project/topics/my-pubsub-topic\"\n        ```\n\n        ```json\n        \"projects/my-project/subscriptions/my-pubsub-subscription\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/instances/my-redis-instance\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/clusters/my-gke-cluster\"\n        ```\n\n      - **`vpc_access_connector`** *(string)*: GCP Resource Name (GRN).\n\n        Examples:\n        ```json\n        \"projects/my-project/global/networks/my-global-network\"\n        ```\n\n        ```json\n        \"projects/my-project/regions/us-west2/subnetworks/my-subnetwork\"\n        ```\n\n        ```json\n        \"projects/my-project/topics/my-pubsub-topic\"\n        ```\n\n        ```json\n        \"projects/my-project/subscriptions/my-pubsub-subscription\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/instances/my-redis-instance\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/clusters/my-gke-cluster\"\n        ```\n\n  - **`specs`** *(object)*\n    - **`gcp`** *(object)*: .\n      - **`project`** *(string)*\n      - **`region`** *(string)*: The GCP region to provision resources in.\n\n        Examples:\n        ```json\n        \"us-east1\"\n        ```\n\n        ```json\n        \"us-east4\"\n        ```\n\n        ```json\n        \"us-west1\"\n        ```\n\n        ```json\n        \"us-west2\"\n        ```\n\n        ```json\n        \"us-west3\"\n        ```\n\n        ```json\n        \"us-west4\"\n        ```\n\n        ```json\n        \"us-central1\"\n        ```\n\n- **`topic`** *(object)*: GCP PubSub Topic. Cannot contain additional properties.\n  - **`data`** *(object)*: Cannot contain additional properties.\n    - **`infrastructure`** *(object)*: PubSub topic configuration. Cannot contain additional properties.\n      - **`grn`** *(string)*: GCP Resource Name (GRN).\n\n        Examples:\n        ```json\n        \"projects/my-project/global/networks/my-global-network\"\n        ```\n\n        ```json\n        \"projects/my-project/regions/us-west2/subnetworks/my-subnetwork\"\n        ```\n\n        ```json\n        \"projects/my-project/topics/my-pubsub-topic\"\n        ```\n\n        ```json\n        \"projects/my-project/subscriptions/my-pubsub-subscription\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/instances/my-redis-instance\"\n        ```\n\n        ```json\n        \"projects/my-project/locations/us-west2/clusters/my-gke-cluster\"\n        ```\n\n    - **`security`** *(object)*: GCP Security Configuration. Cannot contain additional properties.\n      - **`iam`** *(object)*: IAM Roles And Conditions. Cannot contain additional properties.\n        - **`^[a-z]+[a-z_]*[a-z]$`** *(object)*\n          - **`condition`** *(string)*: GCP IAM Condition.\n          - **`role`**: GCP Role.\n\n            Examples:\n            ```json\n            \"roles/owner\"\n            ```\n\n            ```json\n            \"roles/redis.editor\"\n            ```\n\n            ```json\n            \"roles/storage.objectCreator\"\n            ```\n\n            ```json\n            \"roles/storage.legacyObjectReader\"\n            ```\n\n  - **`specs`** *(object)*\n    - **`topic`** *(object)*: . Cannot contain additional properties.\n      - **`distribution`** *(string)*: Must be one of: `['pubsub']`.\n\u003c!-- CONNECTIONS:END --\u003e\n\n\u003c/details\u003e\n\n### Artifacts\n\nResources created by this bundle that can be connected to other bundles.\n\n\u003cdetails\u003e\n\u003csummary\u003eView\u003c/summary\u003e\n\n\u003c!-- ARTIFACTS:START --\u003e\n## Properties\n\n- **`cloud_function`** *(object)*: GCP Cloud Function. Cannot contain additional properties.\n  - **`data`** *(object)*: Cannot contain additional properties.\n    - **`infrastructure`** *(object)*: Cloud Function infrastructure configuration. Cannot contain additional properties.\n      - **`function_url`** *(string)*: URL of Cloud Function.\n\n        Examples:\n        ```json\n        \"https://example.com/some/path\"\n        ```\n\n        ```json\n        \"https://massdriver.cloud\"\n        ```\n\n      - **`name`** *(string)*: Name of Cloud Function.\n\n        Examples:\n        ```json\n        \"my-cloud-function\"\n        ```\n\n        ```json\n        \"my-sql-instance\"\n        ```\n\n    - **`security`** *(object)*: GCP Security Configuration. Cannot contain additional properties.\n      - **`iam`** *(object)*: IAM Roles And Conditions. Cannot contain additional properties.\n        - **`^[a-z]+[a-z_]*[a-z]$`** *(object)*\n          - **`condition`** *(string)*: GCP IAM Condition.\n          - **`role`**: GCP Role.\n\n            Examples:\n            ```json\n            \"roles/owner\"\n            ```\n\n            ```json\n            \"roles/redis.editor\"\n            ```\n\n            ```json\n            \"roles/storage.objectCreator\"\n            ```\n\n            ```json\n            \"roles/storage.legacyObjectReader\"\n            ```\n\n  - **`specs`** *(object)*\n    - **`gcp`** *(object)*: .\n      - **`project`** *(string)*\n      - **`region`** *(string)*: The GCP region to provision resources in.\n\n        Examples:\n        ```json\n        \"us-east1\"\n        ```\n\n        ```json\n        \"us-east4\"\n        ```\n\n        ```json\n        \"us-west1\"\n        ```\n\n        ```json\n        \"us-west2\"\n        ```\n\n        ```json\n        \"us-west3\"\n        ```\n\n        ```json\n        \"us-west4\"\n        ```\n\n        ```json\n        \"us-central1\"\n        ```\n\n\u003c!-- ARTIFACTS:END --\u003e\n\n\u003c/details\u003e\n\n## Contributing\n\n\u003c!-- CONTRIBUTING:START --\u003e\n\n### Bug Reports \u0026 Feature Requests\n\nDid we miss something? Please [submit an issue](https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/issues) to report any bugs or request additional features.\n\n### Developing\n\n**Note**: Massdriver bundles are intended to be tightly use-case scoped, intention-based, reusable pieces of IaC for use in the [Massdriver][website] platform. For this reason, major feature additions that broaden the scope of an existing bundle are likely to be rejected by the community.\n\nStill want to get involved? First check out our [contribution guidelines](https://docs.massdriver.cloud/bundles/contributing).\n\n### Fix or Fork\n\nIf your use-case isn't covered by this bundle, you can still get involved! Massdriver is designed to be an extensible platform. Fork this bundle, or [create your own bundle from scratch](https://docs.massdriver.cloud/bundles/development)!\n\n\u003c!-- CONTRIBUTING:END --\u003e\n\n## Connect\n\n\u003c!-- CONNECT:START --\u003e\n\nQuestions? Concerns? Adulations? We'd love to hear from you!\n\nPlease connect with us!\n\n[![Email][email_shield]][email_url]\n[![GitHub][github_shield]][github_url]\n[![LinkedIn][linkedin_shield]][linkedin_url]\n[![Twitter][twitter_shield]][twitter_url]\n[![YouTube][youtube_shield]][youtube_url]\n[![Reddit][reddit_shield]][reddit_url]\n\n\u003c!-- markdownlint-disable --\u003e\n\n[logo]: https://raw.githubusercontent.com/massdriver-cloud/docs/main/static/img/logo-with-logotype-horizontal-400x110.svg\n[docs]: https://docs.massdriver.cloud/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=docs\n[website]: https://www.massdriver.cloud/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=website\n[github]: https://github.com/massdriver-cloud?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=github\n[slack]: https://massdriverworkspace.slack.com/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=slack\n[linkedin]: https://www.linkedin.com/company/massdriver/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=linkedin\n\n\n\n[contributors_shield]: https://img.shields.io/github/contributors/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[contributors_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/graphs/contributors\n[forks_shield]: https://img.shields.io/github/forks/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[forks_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/network/members\n[stars_shield]: https://img.shields.io/github/stars/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[stars_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/stargazers\n[issues_shield]: https://img.shields.io/github/issues/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[issues_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/issues\n[release_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/releases/latest\n[release_shield]: https://img.shields.io/github/release/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[license_shield]: https://img.shields.io/github/license/massdriver-cloud/gcp-cloud-function-pubsub.svg?style=for-the-badge\n[license_url]: https://github.com/massdriver-cloud/gcp-cloud-function-pubsub/blob/main/LICENSE\n\n\n[email_url]: mailto:support@massdriver.cloud\n[email_shield]: https://img.shields.io/badge/email-Massdriver-black.svg?style=for-the-badge\u0026logo=mail.ru\u0026color=000000\n[github_url]: mailto:support@massdriver.cloud\n[github_shield]: https://img.shields.io/badge/follow-Github-black.svg?style=for-the-badge\u0026logo=github\u0026color=181717\n[linkedin_url]: https://linkedin.com/in/massdriver-cloud\n[linkedin_shield]: https://img.shields.io/badge/follow-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026color=0A66C2\n[twitter_url]: https://twitter.com/massdriver?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=twitter\n[twitter_shield]: https://img.shields.io/badge/follow-Twitter-black.svg?style=for-the-badge\u0026logo=twitter\u0026color=1DA1F2\n[discourse_url]: https://community.massdriver.cloud?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=gcp-cloud-function-pubsub\u0026utm_content=discourse\n[discourse_shield]: https://img.shields.io/badge/join-Discourse-black.svg?style=for-the-badge\u0026logo=discourse\u0026color=000000\n[youtube_url]: https://www.youtube.com/channel/UCfj8P7MJcdlem2DJpvymtaQ\n[youtube_shield]: https://img.shields.io/badge/subscribe-Youtube-black.svg?style=for-the-badge\u0026logo=youtube\u0026color=FF0000\n[reddit_url]: https://www.reddit.com/r/massdriver\n[reddit_shield]: https://img.shields.io/badge/subscribe-Reddit-black.svg?style=for-the-badge\u0026logo=reddit\u0026color=FF4500\n\n\u003c!-- markdownlint-restore --\u003e\n\n\u003c!-- CONNECT:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassdriver-cloud%2Fgcp-cloud-function-pubsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmassdriver-cloud%2Fgcp-cloud-function-pubsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassdriver-cloud%2Fgcp-cloud-function-pubsub/lists"}