{"id":16872569,"url":"https://github.com/andrewmclagan/aws-lambda-ec2-start-stop","last_synced_at":"2025-04-11T11:13:15.218Z","repository":{"id":148896314,"uuid":"59177251","full_name":"andrewmclagan/aws-lambda-ec2-start-stop","owner":"andrewmclagan","description":"AWS Lambda function that will start and stop EC2 instances","archived":false,"fork":false,"pushed_at":"2016-06-01T23:56:04.000Z","size":378,"stargazers_count":13,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T07:36:13.775Z","etag":null,"topics":["aws-ec2","aws-lambda","ec2-instance","lambda-start","region","schedule"],"latest_commit_sha":null,"homepage":null,"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/andrewmclagan.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-19T05:44:54.000Z","updated_at":"2024-03-07T19:17:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1234f61-da1e-44dd-bbb2-797f2047eda0","html_url":"https://github.com/andrewmclagan/aws-lambda-ec2-start-stop","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewmclagan%2Faws-lambda-ec2-start-stop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewmclagan%2Faws-lambda-ec2-start-stop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewmclagan%2Faws-lambda-ec2-start-stop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewmclagan%2Faws-lambda-ec2-start-stop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewmclagan","download_url":"https://codeload.github.com/andrewmclagan/aws-lambda-ec2-start-stop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248381790,"owners_count":21094528,"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-ec2","aws-lambda","ec2-instance","lambda-start","region","schedule"],"created_at":"2024-10-13T15:15:22.483Z","updated_at":"2025-04-11T11:13:15.210Z","avatar_url":"https://github.com/andrewmclagan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS EC2 - Lambda Start / Stop [![Build Status](https://travis-ci.org/andrewmclagan/aws-lambda-ec2-start-stop.svg?branch=master)](https://travis-ci.org/andrewmclagan/aws-lambda-ec2-start-stop)\n\n\u003e AWS Lambda function that will stop or stop EC2 instances that have a tag with the key start-group or stop-group and the value the name of the lambda function.\n\nOriginally forked from [SamVerschueren/aws-lambda-stop-server](https://github.com/SamVerschueren/aws-lambda-stop-server) updates include:\n\n* node ^4.x.x\n* cross-region\n* removed dependancies\n* ES6 codebase\n* modular, testable, functional and importantly readable codebase \n\n## Usage\n\nDownload the [`/dist/build.zip`](https://github.com/andrewmclagan/aws-lambda-ec2-start-stop/releases/latest) file from the latest release and deploy it as a lambda function (use master at your own risk).\n\nLambda settings:\n\n* **Function Name** Something that relates to the schedule e.g. `week-day-startup` or `daily-shutdown`.\n* **Timeout** 30 seconds or above\n* **Runtime** Node.js 4.3 and above\n* **Handler** for stopping instances `index.stopTaggedInstances`, for starting instances `index.startTaggedInstances`.\n* **Event Sources** Choose `Scheduled Event` then provide a cron expression e.g. `cron(15 17 ? * MON-FRI *)` This expression will stop the servers every weekday, from monday to friday, at 17:15 PM (UTC time).\n\n\n### Tags\n\nTagging your instance is very important in order for the lambda function to work properly. The lambda function will retrieve **all instances** across **all regions** that have a tag with a key `stop-group` or `start-group`,\nand a value being the name of the lambda function you provided.\n\nFor instance, if you named your lambda function `week-day-startup`, make sure you add a tag with key-value `start-group=week-day-startup` to all the instances you want to start on that particular schedule.\n\n### IAM Role\n\nMake sure your lambda function is able to describe, start, and stop instances.\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"MyStatementId\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ec2:DescribeRegions\",\n                \"ec2:DescribeInstances\",\n                \"ec2:StopInstances\",\n                \"ec2:StartInstances\"\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        }\n    ]\n}\n```\n\n## License\n\nMIT © Andrew McLagan\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewmclagan%2Faws-lambda-ec2-start-stop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewmclagan%2Faws-lambda-ec2-start-stop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewmclagan%2Faws-lambda-ec2-start-stop/lists"}