Skip to main content

A55 AWS PubSub Library

Project description

Welcome to Subdivisions

PyPI Publish PyPI - Python Version Conventional Commits Code style: black pre-commit

A55 Python library for PubSub Messaging.

Install

# pyproject.toml
[tool.subdivisions]
default_prefix = "a55"
source_name = "YourProjectName"

[tool.poetry.dependencies]
subdivisions = "*"

Run poetry update

Usage

Send Messages

from enum import Enum
from subdivisions.client import SubClient

class ProjectTopics(Enum):
    USER_REGISTERED = "user_registered"

client = SubClient()
client.topic = ProjectTopics.USER_REGISTERED # or just "user_registered"
client.send({"foo": "bar"})

Receive Messages

from enum import Enum
from subdivisions.client import SubClient

class ProjectTopics(Enum):
    USER_REGISTERED = "user_registered"

client = SubClient()
client.topic = ProjectTopics.USER_REGISTERED # or just "user_registered"
messages = client.get_messages()
# Process messages
client.delete_received_messages()

AWS Credentials

Subdivisions will use AWS environment variables. If you need to define another credentials, use the following variables:

SUBDIVISIONS_USE_AWS_ENV_VARS="false"
SUBDIVISIONS_AWS_ACCESS_KEY_ID="your id"
SUBDIVISIONS_AWS_SECRET_ACCESS_KEY="your key"
SUBDIVISIONS_AWS_SESSION_TOKEN="your token" # optional

Configuration

Configure subdivisions options in pyproject.toml file, inside [tool.subdivisions] table:

# pyproject.toml
[tool.subdivisions]
aws_region = "us-east-1"            # AWS Region
pub_key = "alias/PubSubKey"         # KMS PubSubKey (must be created first)
sqs_tags = []                       # SQS tags for new queues. Example [{"foo": "bar"}]
queue_prefix = ""                   # Prefix for new SQS queues
queue_suffix = ""                   # Suffix for new SQS queues
queue_max_receive_count = 1000      # SQS MaxReceiveCount setting
sns_prefix = ""                     # Prefix for new SNS topics
sns_suffix = ""                     # Suffix for new SNS topics
sns_tags = []                       # SNS tags for new topics. Example [{"foo": "bar"}]
event_prefix = ""                   # Prefix for new Eventbride rules
event_suffix = ""                   # Suffix for new Eventbride rules
event_tags = []                     # Eventbridge tags for new rules. Example [{"foo": "bar"}]
event_bus = "default"               # Eventbridge Bus
source_name = "Subdivisions"        # Eventbridge default source name
auto_create_new_topic = true        # Auto create new topic if not exists in Eventbridge
auto_remove_from_queue = false      # Acknowledge first messages on receive
use_aws_env_vars = true             # Use AWS default env vars. If false append "SUBDIVISION_" on env vars. Example: "SUBDIVISION_AWS_ACCESS_KEY_ID"
default_prefix = "subdivisions"     # Default prefix for all sns, sqs and rule created
default_suffix = ""                 # Default suffix for all sns, sqs and rule created

All options above can be configured in environment variables. Just append SUBDIVISIONS_ on name. Example: SUBDIVISIONS_SOURCE_NAME="my_project"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subdivisions-1.0.3.tar.gz (10.4 kB view hashes)

Uploaded Source

Built Distribution

subdivisions-1.0.3-py3-none-any.whl (11.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page