{"id":18892387,"url":"https://github.com/hf/pubpubsub","last_synced_at":"2026-02-26T06:30:15.028Z","repository":{"id":143824622,"uuid":"446618185","full_name":"hf/pubpubsub","owner":"hf","description":"Connect AWS to Google Cloud via Lambda and PubSub.","archived":false,"fork":false,"pushed_at":"2022-01-15T17:23:38.000Z","size":17,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-12-31T06:29:51.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/hf.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-10T23:49:26.000Z","updated_at":"2024-08-20T19:36:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"c32ba894-420c-4aef-8874-e8dbad37dc82","html_url":"https://github.com/hf/pubpubsub","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hf%2Fpubpubsub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hf%2Fpubpubsub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hf%2Fpubpubsub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hf%2Fpubpubsub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hf","download_url":"https://codeload.github.com/hf/pubpubsub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239868629,"owners_count":19710474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-08T08:01:46.920Z","updated_at":"2026-02-26T06:30:14.995Z","avatar_url":"https://github.com/hf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PubPubSub\n\nA ready-made AWS Lambda function you can invoke to publish messages into\nGoogle's PubSub system.\n\nIt's really useful for bridging AWS compute with Firebase or other Google Cloud\nprojects.\n\n## Setup\n\nFollow the guide to setup [Workload Identity\nFederation][gcp-workload-identity-federation] in your Google Cloud projects.\n\nThen you can deploy the code in this repository as a Node.js Lambda function in\nyour AWS account.\n\nCheck out the Releases section for packages and instructions.\n\nHosted versions are available out of my personal AWS account, should you need\nto get running quickly. You're encouraged to host it on your own accounts and\nservice is provided without any guarantees or warranty express or implied.\n\nCloudFormation:\n\n```\nhttps://github-com-hf-pubpubsub-\u003cregion\u003e.s3.amazonaws.com/release/cloudformation/\u003crelease\u003e\n```\n\nLambda:\n\n```\nhttps://github-com-hf-pubpubsub-\u003cregion\u003e.s3.amazonaws.com/release/lambda/\u003crelease\u003e\n```\n\nCurrently available in: `us-east-1`, `eu-west-1`. Open an issue to\nrequest availability in other regions.\n\nNote that you're only allowed to access the S3 object, not the bucket itself.\nYou must do it using AWS credentials, and your identity will be visible in my\nCloudTrail account.\n\n### Configuration\n\nThe Lambda function expects these environment variables:\n\n- `GOOGLE_CLOUD_PROJECT_NUMBER` GCP project number where the Workload Identity\n  Federation provider resides\n- `GOOGLE_CLOUD_WEB_IDENTITY_POOL` ID of the web identity pool\n- `GOOGLE_CLOUD_WEB_IDENTITY_POOL_AWS_PROVIDER` ID of the AWS provider in the\n  web identity pool\n- `GOOGLE_CLOUD_SERVICE_ACCOUNT_EMAIL` Service account email to impersonate\n- `GOOGLE_CLOUD_DEFAULT_PROJECT_ID` (Optional) Project ID where messages\n  without a `projectId` property will be directed to\n\n## Use\n\nThe Lambda function can be invoked synchronously or asynchronously.\n\nIt accepts a JSON object with the following structure:\n\n- `topic` Pub/Sub topic to which to publish\n- `message` A string representing the message to be published\n- `base64` (Optional) A boolean whether the `mesasge` is encoded in Base64\n- `projectId` (Optional) GCP project ID where the `topic` lives\n\nIt outputs a JSON object with the following structure:\n\n- `topic` Pub/Sub topic where the message was published\n- `projectId` GCP project ID where the `topic` lives\n- `messageId` ID of the message in the `topic`\n\n## License\n\nCopyright \u0026copy; 2022 Stojan Dimitrovski. Some rights reserved.\n\nLicensed under the MIT X11 License. You can find a copy of it under `LICENSE`.\n\n[gcp-workload-identity-federation]: https://cloud.google.com/iam/docs/configuring-workload-identity-federation#aws\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhf%2Fpubpubsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhf%2Fpubpubsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhf%2Fpubpubsub/lists"}