Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

spine-core-aws-common

Common code used across Spine projects in AWS

[!IMPORTANT] The spine-core-aws-common python package is no longer supported. The package and its source code will remain publicly available but no further development is planned.

Installation

Simply add the pre-built package to your python environment.

The latest version can be obtained with the following curl command if your system has it present:

package_version=$(curl -SL https://github.com/NHSDigital/spine-core-aws-common/releases/latest | grep -Po 'Release v\K(\d+.\d+.\d+)' | head -n1)

Or you can set a specific version:

package_version="0.2.3"

Alternatively the main page of this repo will display the latest version i.e. 0.2.3, and previous versions can be searched, which you can substitute in place of ${package_version} in the below commands.

PIP

pip install https://github.com/NHSDigital/spine-core-aws-common/releases/download/v${package_version}/spine_aws_common-${package_version}-py3-none-any.whl

requirements.txt

https://github.com/NHSDigital/spine-core-aws-common/releases/download/v${package_version}/spine_aws_common-${package_version}-py3-none-any.whl

Poetry

poetry add https://github.com/NHSDigital/spine-core-aws-common/releases/download/v${package_version}/spine_aws_common-${package_version}-py3-none-any.whl

Usage

TBC

Quick example

from spine_aws_common import LambdaApplication

class MyApp(LambdaApplication):
    def initialise(self):
        # initialise
        return

    def start(self):
        # do actual work
        # to set response for the lambda
        self.response = '{"my new response":true}'
        return

# create instance of class in global space
# this ensures initial setup of logging/config is only done on cold start
app = MyApp(additional_log_config='/path/to/mylogconfig.cfg')

def lambda_handler(event, context):
    return app.main(event, context)

API Gateway example

from spine_aws_common import APIGatewayApplication
from aws_lambda_powertools.event_handler.api_gateway import Response

class MyApp(APIGatewayApplication):
    def get_hello(self):
        return Response(
            status_code=200, content_type="application/json", body='{"hello":"world"}'
        )

    def get_id(self, _id):
        response_dict = {"id": _id}
        return Response(
            status_code=200,
            content_type="application/json",
            body=json.dumps(response_dict),
        )

    def configure_routes(self):
        self._add_route(self.get_hello, "/hello")
        self._add_route(self.get_id, "/id/<_id>")

# create instance of class in global space
# this ensures initial setup of logging/config is only done on cold start
app = MyApp(additional_log_config='/path/to/mylogconfig.cfg')

def lambda_handler(event, context):
    return app.main(event, context)

Metadata

Release files for spine-aws-common 0.2.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spine-aws-common 0.2.16
File Size Uploaded
spine_aws_common-0.2.16.tar.gz 21.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spine-aws-common 0.2.16
File Interpreter ABI Platform
spine_aws_common-0.2.16-py3-none-any.whl Python 3 none any Details

Total release size: 52.4 kB

Release files / spine_aws_common-0.2.16.tar.gz

Download URL spine_aws_common-0.2.16.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
841e9f389ccba1804d07755069704eb870a336d576ee6dbf525fd6675876e82e
BLAKE2b-256 checksum
How to use checksums
523f90a2c2f5392b4f13b92d7f60faff3a22b6b32cd78e51ee1c7b683c0d69a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / spine_aws_common-0.2.16-py3-none-any.whl

Download URL spine_aws_common-0.2.16-py3-none-any.whl
Size 30.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f9c4fbd11a7644daed3fd2fbbc4dec121682b817c7926d4bd785291bcea9e6a
BLAKE2b-256 checksum
How to use checksums
c504727f2702786ec4fafb11de744e3b95053c87cfea7c13d467aa2ce04cd716
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page