Google Cloud Pub/Sub¶
The Google Cloud Pub/Sub modules enable you to monitor and publish messages or create, update, retrieve, and delete topics and subscriptions in your Google Cloud Pub/Sub.
Getting Started with Google Cloud Pub/Sub¶
Prerequisites
-
A Google account
-
A project created in the Google Cloud Console
In order to use Google Cloud Pub/Sub with Ibexa Connect, it is necessary to have a Google account. If you do not have one, you can create a Google Cloud Pub/Sub account at accounts.google.com.
Note
The module dialog fields that are displayed in bold (in the Ibexa Connect scenario, not in this documentation article) are mandatory!
Connecting Google Cloud Pub/Sub to Ibexa Connect¶
To connect your Google Cloud Pub/Sub account to Ibexa Connect, you'll need to obtain the project's Client ID and Client Secret in the Google Cloud Console.
-
Sign in to Google Cloud console using your Google credentials.
-
Click Select a project > NEW PROJECT. Enter the desired project name and click the CREATE button.
-
Select the project you have created.
-
Go to APIs & Services > Library.
-
Search and enable the following required APIs:
- Cloud Resource Manager API
The desired service option should display as you type. Click on the API/service you want to connect to Ibexa Connect.
-
Click the ENABLE button to enable the selected API.
-
Open APIs & Services > Library, and search and enable the two remaining required APIs (see step 5 above).
-
Open Big Data > Pub/Sub. This will enable the rest of the required APIs in your project.
-
Navigate to APIs & Services > OAuth consent screen.
-
Choose the External option, and click the CREATE button.
Note
You will not be charged when selecting this option! For more details, please refer to Google's Exceptions to verification requirements.
-
Fill the required fields as follows and then click the Save and Continue button:
App name
Enter the name of the app asking for consent.
For example
Ibexa Connect
.Authorized domains
Ibexa Connect.com
-
You don't have to set anything in the Scopes and Optional info sections. Click Save and Continue.
-
Navigate to Credentials. Click on the +CREATE CREDENTIALS, and select the OAuth Client ID option.
-
Fill in the required fields as follows, and then click the CREATE button to create the application:
Application type Web application
Name e.g. Ibexa Connect
Authorized redirect URIs https://www.Ibexa Connect.com/oauth/cb/google-custom
-
A dialog containing the app's Client ID and Client Secret is displayed. Save them to a safe place for later use.
-
Go to Ibexa Connect, open the Create a connection dialog of the desired Google Cloud Pub/Sub module, enter the Client ID and Client Secret from step 15 above to the respective fields, and click Continue.
-
Sign in with your Google account.
-
This app isn't verified window may appear.
Note
The app is your OAuth client you have created above.
-
Click on the Advanced link, and then on the Go to Ibexa Connect (unsafe) link to allow access using your custom OAuth client.
-
Click Allow to grant Ibexa Connect permission.
-
Click the Allow button to confirm your choices.
The connection to your Google Cloud Pub/Sub has been established.
Message¶
Watch Messages¶
Triggers when a message is published for the specified topic.
Webhook name |
Enter the name for the webhook. |
Project |
Select the project that contains the topic you want to watch for published messages. |
Topic Name |
Select the topic you want to watch for published messages. |
Subscription Filter |
Set the filter according to the filter syntax. If the filter is set, only messages that match this filter are returned. |
Message Retention Duration |
Enter the duration in seconds. Specify how long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. Minimum 10 minutes, maximum 7 days. The default is 7 days.Duration in seconds with up to nine fractional digits, terminated by 's'. Example: |
Order Messages with an Ordering Key |
If enabled, messages published with the same |
Enable Dead Lettering |
Check to enable a dead letter policy, which specifies the conditions for dead lettering messages.Then, set the name of the topic to which dead letter messages should be published and the number of delivery attempts. |
Retry after Exponential Backoff Delay |
Check to enable a policy that specifies how Pub/Sub retries message delivery. Uncheck to retry immediately. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. Set the minimum and maximum backoff (in seconds). |
Labels |
Specify labels. See Creating and managing labels. An object containing a list of |
Publish Messages¶
Publishes a message to the specified topic.
Topic Name |
Enter the topic path in the following format: Or use the Search button to browse the desired topic. |
||||
Messages |
Either message or attribute will be required to publish.
|
Topic¶
List Topics¶
Returns a list of topics in the specified project.
Project | Select or map the ID of the project you want to retrieve topics from. |
Limit | Set the maximum number of topics Ibexa Connect will return during one execution cycle. |
List Topic Subscriptions¶
Returns a list of topic subscriptions.
Topic Name |
Enter the topic path in the following format: Or use the Search button to browse the desired topic you want to list subscriptions for. |
Limit |
Set the maximum number of subscriptions Ibexa Connect will return during one execution cycle. |
Create a Subscription¶
Creates a new subscription to a specified topic.
Subscription ID |
Specify the unique resource name. |
Project |
Select the project or map the ID of the project that contains the topic you want to create a subscription for. |
Topic Name |
Select the topic or map the ID of the topic you want to create a subscription for. |
Enable Push Delivery |
Check this option to use Push delivery instead of Pull delivery. |
Enable Subscription Expiration |
Check to enable a policy that specifies the conditions for this subscription's expiration. A subscription is considered active as long as any connected subscriber is successfully consuming messages from the subscription or is issuing operations on the subscription. |
Time To Live |
Specify the "time-to-live" duration for an associated resource in seconds. The resource expires if it is not active for a period of Indicate the duration in seconds with up to nine fractional digits, terminated by ' |
Acknowledgement Deadline in Seconds |
Enter the approximate amount of time (on a best-effort basis) Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In the interval after the message is delivered and before it is acknowledged, it is considered to be outstanding. During that time period, the message will not be redelivered (on a best-effort basis). |
Subscription Filter |
Set the filter according the filter syntax. If the filter is set, only messages that match this filter are returned. |
Message Retention Duration |
Enter the duration in seconds. Define how long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. Minimum 10 minutes, maximum 7 days. The default is 7 days.Duration in seconds with up to nine fractional digits, terminated by 's'. Example: |
Retain Acknowledged Messages |
If enabled, messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the |
Order Messages with an Ordering Key |
If enabled, messages published with the same |
Enabled Dead Lettering |
Check to enable a dead letter policy, the policy that specifies the conditions for dead lettering messages.Then, set the name of the topic to which dead letter messages should be published and the number of delivery attempts. |
Retry after Exponential Backoff Delay |
Check to enable a policy that specifies how Pub/Sub retries message delivery. Uncheck to retry immediately. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. Set the minimum and maximum backoff (in seconds). |
Labels |
Specify labels. See Creating and managing labels. An object containing a list of |
Update a Subscription¶
Updates an existing subscription.
Subscription Name | Enter the path to the subscription you want to update in the following format: projects/{project}/subscriptions/{sub} . Or, browse the subscription using the Search button. |
Please find the descriptions of the fields in the Create a Subscription section above.
Delete a Subscription¶
Deletes a subscription. All messages retained in the subscription are immediately dropped.After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription or its topic unless the same topic is specified.
Subscription Name | Enter the path to the subscription you want to delete in the following format: projects/{project}/subscriptions/{sub} . Or, browse the subscription using the Search button. |
Other¶
Make an API Call¶
Allows you to perform a custom API call.
URL |
Enter a path relative to | For the list of available endpoints, refer to the Pub/Sub API Documentation. |
Method
Select the HTTP method you want to use:
GET
to retrieve information for an entry.
POST
to create a new entry.
PUT
to update/replace an existing entry.
PATCH
to make a partial entry update.
DELETE
to delete an entry.
Headers
Enter the desired request headers. You don't have to add authorization headers; we've already added those for you.
Query String
Enter the request query string.
Body
Enter the body content for your API call.
Example of Use - List Snapshots¶
The following API call returns all snapshots in the specified topic:
URL:
/v1/projects/{project}/topics/{topic}/snapshots/
Method:
GET
The result can be found in the module's Output under Bundle > Body > snapshots.
In our example, 3 snapshots were returned: