{"id":19435803,"url":"https://github.com/tigeryant/aws-sms-delivery","last_synced_at":"2026-04-26T20:31:48.204Z","repository":{"id":127747859,"uuid":"601746315","full_name":"tigeryant/aws-sms-delivery","owner":"tigeryant","description":"SMS delivery using serverless AWS","archived":false,"fork":false,"pushed_at":"2023-06-14T09:45:20.000Z","size":590,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-02T15:43:08.827Z","etag":null,"topics":["aws","lambda","serverless","serverless-framework"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tigeryant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-14T18:21:55.000Z","updated_at":"2023-02-15T00:02:23.000Z","dependencies_parsed_at":"2023-07-04T01:41:40.432Z","dependency_job_id":null,"html_url":"https://github.com/tigeryant/aws-sms-delivery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tigeryant/aws-sms-delivery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigeryant%2Faws-sms-delivery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigeryant%2Faws-sms-delivery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigeryant%2Faws-sms-delivery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigeryant%2Faws-sms-delivery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tigeryant","download_url":"https://codeload.github.com/tigeryant/aws-sms-delivery/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigeryant%2Faws-sms-delivery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","lambda","serverless","serverless-framework"],"created_at":"2024-11-10T15:08:02.914Z","updated_at":"2026-04-26T20:31:48.180Z","avatar_url":"https://github.com/tigeryant.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SMS delivery - serverless AWS demo\n## Overview\nThis repo contains the source code of a serverless AWS SMS delivery system. The steps to send an SMS message are as follows:\n1. The user makes an HTTP POST request to an endpoint, passing a request body (payload) in the following format:\n```\n{\n\t\"text\": \"My message\",\n\t\"phone\": \"+449999999999\"\n}\n```\nNote that the value of the 'phone' property must adhere to the E164 international phone number format, and neither the 'text' nor 'phone' properties can be empty strings, or only whitespace.\n\n2. The payload is then published to an SNS topic using the AWS integration type.\n3. The SNS topic passes this message onto a subscriber, an SQS queue.\n4. The message is pulled from the SQS queue by a Lambda function.\n5. Assuming that the payload was passed in a valid format, the 'text' attribute is sent to the phone number defined in the 'phone' attribute via SNS.\n\n## Architecture\nBelow is a diagram illustrating a conceptual overview of the architecture of this system.\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/RKX8oIR.png\" height=\"285px\"\u003e\u003c/img\u003e\n  \u003cp\u003e\n\n## Deployment\nThe Serverless Framework was used to deploy the lambda function, the SQS queue, the SNS topic and all their associated roles and policies.\n\n## Testing\nJest was used to write unit tests for the Lambda function. The first test checks for an appropriate response when a valid SQS event object containing a valid payload is passed to the handler. The other tests check that the lambda fails gracefully in the case that the 'text' or 'phone' values are malformed. The tests are defined within the `./tests/unit` directory, and can be run by running `npm run test` from the root of the project directory.\n\n## Stack\n* AWS API Gateway\n* AWS SNS\n* AWS SQS\n* AWS Lambda\n* TypeScript\n* Jest\n* Serverless Framework\n* Webpack\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigeryant%2Faws-sms-delivery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftigeryant%2Faws-sms-delivery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigeryant%2Faws-sms-delivery/lists"}