{"id":19428279,"url":"https://github.com/computationalcore/emberjs-aws-serverless","last_synced_at":"2026-05-09T05:08:22.732Z","repository":{"id":46061453,"uuid":"185058550","full_name":"computationalcore/emberjs-aws-serverless","owner":"computationalcore","description":"A demo users CRUD EmberJS app with AWS Serverless node backend","archived":false,"fork":false,"pushed_at":"2021-11-16T22:19:37.000Z","size":239,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-07T19:45:44.549Z","etag":null,"topics":["aws","aws-lambda","aws-lambda-node","crud-application","crud-sample","ember-app","emberjs","serverless"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/computationalcore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-05T16:55:21.000Z","updated_at":"2020-12-31T16:37:05.000Z","dependencies_parsed_at":"2022-09-05T20:41:20.705Z","dependency_job_id":null,"html_url":"https://github.com/computationalcore/emberjs-aws-serverless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Femberjs-aws-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Femberjs-aws-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Femberjs-aws-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Femberjs-aws-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/computationalcore","download_url":"https://codeload.github.com/computationalcore/emberjs-aws-serverless/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240607653,"owners_count":19828274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","aws-lambda","aws-lambda-node","crud-application","crud-sample","ember-app","emberjs","serverless"],"created_at":"2024-11-10T14:14:52.541Z","updated_at":"2026-05-09T05:08:22.701Z","avatar_url":"https://github.com/computationalcore.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emberjs-aws-serverless\n\nThis application allows to create, update, edit, delete and list users, with first, last name and address fields.\n\n It utilizes a fully serverless architecture:\n\n - API Gateway for REST API\n - Lambda and DynamoDB as a Backend\n - CloudFormation and SAM for Infrastructure management\n - S3 to serve the WebSite\n\nThe application utilizes Ember.js methodology by abstracting API Gateway communication into adapters, allowing you to write controller code utilizing ember models.\n\nThis application can run 100% locally (in a docker lambda and docker DynamoDB) and 100% on the AWS Cloud.\n\n![](https://github.com/computationalcore/emberjs-aws-serverless/raw/assets/screenshot.png)\n\n## Prerequisites\n\nYou will need the following things properly installed on your computer.\n\n- [Git](https://git-scm.com/)\n- [Node.js](https://nodejs.org/) (with NPM)\n- [Docker](https://www.docker.com/get-started)\n- [AWS CLI](https://aws.amazon.com/cli)\n- [SAM CLI](https://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)\n- [Ember CLI](https://ember-cli.com/)\n\n## Installation\n\n- `git clone https://github.com/computationalcore/emberjs-aws-serverless`\n- `cd emberjs-aws-serverless`\n\n--------------------\n\n### Run Locally\n\n#### Backend (Local)\n\nCreate a specific Docker network beforehand named the lambda-local-network (rename it if you want):\n\n```bash\ndocker network create lambda-local-network\n```\n\nCreate a dynamoDB container\n\n```bash\ndocker run -d -p 8000:8000 --network=lambda-local-network --name dynamodb-local amazon/dynamodb-local -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb\n```\n\nCreate Users table\n\n```bash\naws dynamodb create-table --table-name UsersTable --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 --endpoint-url http://127.0.0.1:8000\n```\n\nEnter cloud folder and start the SAM locally\n\n```bash\ncd cloud/\n```\n\n```bash\nsam local start-api --docker-network lambda-local-network\n```\n\nThe API  is up and running at http://127.0.0.1:3000/\n\n#### Client (Local)\n\nAt another terminal instance enter client folder and install dependencies\n\n```bash\ncd aws-sam-client/\nnpm install\n```\n\nStart local server\n\n```bash\nember serve --port 5000\n```\n\nThe JS client is up and running at http://127.0.0.1:5000/\n\n--------------------\n\n### Run at AWS Cloud\n\n#### Cloud\n\nGo to cloud folder\n\n```bash\ncd cloud/\n```\n\n##### Creating the AWS Infrastructure\n\n***Please NOTE: the following steps will incur charges on your AWS account, please see the appropriate pricing pages for the services***\n\nCreate an S3 bucket in the location where you want to save the packaged code. If you want to use an existing S3 bucket, skip this step.\n\n```bash\naws s3 mb s3://bucketname\n```\n\nCreate Users table\n\n```bash\naws dynamodb create-table --table-name UsersTable --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5\n```\n\n\nCreate the Lambda function deployment package by running the following package AWS SAM CLI command at the command prompt.\n\n```bash\nsam package \\\n    --output-template-file packaged.yaml \\\n    --s3-bucket bucketname\n```\n\nIn the AWS SAM CLI, use the deploy command to deploy all of the resources that you defined in the template.\n\n```bash\nsam deploy \\\n    --template-file packaged.yaml \\\n    --stack-name sam-app \\\n    --capabilities CAPABILITY_IAM \\\n    --region us-east-1\n```\n\nGo to AWS Lambda panel API Gateway to check your URL.\n\n#### Client\n\nYet in cloud folder create the client template named ember-serverless-hosting (you are free to change this name)\n\n```bash\naws cloudformation describe-stacks --stack-name ember-serverless-hosting\n```\n\nNote the `OutputValue` value for the `CodeBucketName` S3 bucket, this will be the bucket we use to deploy our Lambda code to.\n\nGo to client folder install dependencies and build the project\n\n```bash\ncd aws-sam-client/\nnpm install\nember build --environment production\n```\n\nChange the value of aws-sam-client/config/environment.js from webServiceURL from 'http://localhost:3000' to the AWS Lambda panel API Gateway URL of the cloud.\n\n##### Deploying the Web Application\n\nBuild the ember app and copy it to S3, note you'll need the \"WebsiteBucket\" output value from the above hosting cloudformation stack you generated. If you need it again, just run `aws cloudformation describe-stacks --stack-name ember-serverless-hosting` *if you used a different name, substitute that in-place of \"ember-serverless-hosting\", then note the `OutputValue` for \"WebsiteBucket\" and use that here:\n\n```bash\naws s3 sync dist/ s3://\u003c\u003cyour-ember-website-bucket\u003e\u003e/ -acl public-read\n```\n\nOnce synced you can visit the URL for your S3 bucket using the `OutputValue` from the hosting template for `WebsiteURL`.\n\n## Authors\n\nVin Busquet - [https://github.com/computationalcore](https://github.com/computationalcore)\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomputationalcore%2Femberjs-aws-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomputationalcore%2Femberjs-aws-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomputationalcore%2Femberjs-aws-serverless/lists"}