Small Python package to add GCP metadata to pub/sub messages
Project description
Description
Gobits is a very small module, which acts as a metadata carrier within an event-driven architecture on the Google Cloud Platform (GCP). It automatically adds fields that may be useful downstream to determine the origin of a message.
Usage
Class attributes:
class Gobits:
"""
A small class that gathers information (bits) for a pub/sub message payload.
Attributes:
_request Holds information about the cloud function request.
_context Holds information about the cloud function context.
envelope The envelope containing a pub/sub message.
message The pub/sub message to be processed.
processed Time of processing (UTC).
gcp_project The source GCP project.
execution_id The id of the execution.
execution_type Type of the service processing the message.
execution_trigger_type Type of the trigger invoking the processor.
function_name Name of the processing cloud function.
function_version Version of the processing cloud function.
event_id The id of the trigger event.
message_id The pub/sub message id.
message_publish_time Time of publishing to pub/sub (UTC).
source_subscription The originating pub/sub subscription.
"""
Cloud function with HTTP trigger:
from gobits import Gobits
def handler(request):
metadata = Gobits.from_request(request=request)
message = {
'gobits': [metadata.to_json()],
'data': []
}
Cloud function with other trigger:
from gobits import Gobits
def handler(data, context):
metadata = Gobits.from_context(context=context)
message = {
'gobits': [metadata.to_json()],
'data': []
}
Testing
Sometimes you want to test a cloud function locally. Be sure to pass mock objects containing the correct fields (if applicable).
from main import handler
from unittest.mock import Mock
mock_data = Mock()
mock_context = Mock()
mock_context.event_id = "12345678"
handler(mock_data, mock_context)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gobits-1.0.10.tar.gz.
File metadata
- Download URL: gobits-1.0.10.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59d29811e61117c9d738a6d1d1d4697edce3844d44ccbb63c49be58e38e60c15
|
|
| MD5 |
9af048a9959681bc6dcf44391e1a88d0
|
|
| BLAKE2b-256 |
0a12ad7d4708f286e575e2023e97e7d2abc022f5089e6628204a12a513195367
|
File details
Details for the file gobits-1.0.10-py3-none-any.whl.
File metadata
- Download URL: gobits-1.0.10-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65355a894d127c3a52a98f732b1da054d0e68ecac139c652d1e50b1f99043ff3
|
|
| MD5 |
85da60bb96f7a87fbeb23a1d804dbce6
|
|
| BLAKE2b-256 |
47a6303ed3ecf6567bb41c9dd3e6781214aa8c501d9f3145e9924d74d2d3a7a4
|