Skip to main content

AMGI SQS event source mapping handler

Project description

amgi-sqs-event-source-mapping

amgi-sqs-event-source-mapping is an adaptor for AMGI applications to run in an SQS event source mapped Lambda.

Installation

pip install amgi-sqs-event-source-mapping==0.41.1

Example

This example uses AsyncFast:

from dataclasses import dataclass

from amgi_sqs_event_source_mapping import SqsEventSourceMappingHandler
from asyncfast import AsyncFast

app = AsyncFast()


@dataclass
class Order:
    item_ids: list[str]


@app.channel("order-queue")
async def order_queue(order: Order) -> None:
    # Makes an order
    ...


handler = SqsEventSourceMappingHandler(app)

What it does

  • Converts SQS batch events into AMGI message.receive events
  • Uses the SQS queue name as the AMGI message address
  • Supports partial batch failures so only failed messages are retried
  • Sends outbound messages back to SQS efficiently using batching
  • Optionally manages application startup and shutdown via AMGI lifespan
  • Verifies message integrity using the SQS-provided MD5 checksum and retries corrupted messages

Record handling

  • Record bodies are passed to your app as bytes
  • SQS record attributes become AMGI headers
  • Records are only acknowledged when your app emits message.ack
  • Records that are not acknowledged are treated as failures and will be retried
  • Corrupted messages are detected automatically and retried

Lifespan

Lifespan support is enabled by default.

  • Startup runs once per Lambda execution environment
  • Shutdown is attempted when the environment is terminated

Shutdown handling relies on signal.SIGTERM, which is supported by Python 3.12 and later Lambda runtimes.

To use fully stateless, per-invocation behavior, disable lifespan:

handler = SqsEventSourceMappingHandler(app, lifespan=False)

Contact

For questions or suggestions, please contact jack.burridge@mail.com.

License

Copyright 2025 AMGI

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

amgi_sqs_event_source_mapping-0.41.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file amgi_sqs_event_source_mapping-0.41.1.tar.gz.

File metadata

  • Download URL: amgi_sqs_event_source_mapping-0.41.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for amgi_sqs_event_source_mapping-0.41.1.tar.gz
Algorithm Hash digest
SHA256 7129f20e94f13af215b676c73a9060838ab65a9e21c0f3acbe3898fba45344e0
MD5 9ab717c0e66cfbeb82876571fbe3cbfc
BLAKE2b-256 73b0a69af35ac5c797b48763128ec74425538c4011275f53deb29e63a80b343c

See more details on using hashes here.

File details

Details for the file amgi_sqs_event_source_mapping-0.41.1-py3-none-any.whl.

File metadata

  • Download URL: amgi_sqs_event_source_mapping-0.41.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for amgi_sqs_event_source_mapping-0.41.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c25f878f22f958a9fd331948b68644c843d6a113a75005b1022c24961b343bc
MD5 28c26ae2b1485482fe82486dd756abff
BLAKE2b-256 ed9783d51ca51a7a702b4495a5ba7ea56093f976888b37f2f0c8d4bcfe29827f

See more details on using hashes here.

Supported by

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