{"full_name":"serverless/serverless","owner":"serverless","name":"serverless","url":"https://github.com/serverless/serverless","description":"⚡ Serverless Framework – Effortlessly build apps that auto-scale, incur zero costs when idle, and require minimal maintenance using AWS Lambda and other managed cloud services.","homepage":"https://serverless.com","topics":[],"language":"JavaScript","license":"NOASSERTION","avatar":"https://avatars.githubusercontent.com/u/13742415?v=4","created_at":"2015-04-21T03:48:40Z","pushed_at":"2026-11-06T16:28:48Z","metrics":{"stars":46929,"forks":5711,"watchers":906,"issues":6652,"prs":6489,"releases":500,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":676},"growth":{"day":{"stars":-3,"forks":0,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[46932,46929],"forks":[5711,5711],"watchers":[906,906],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":3785,"title":"AWS API Gateway: Error when renaming path variable","comments":84,"created_at":"2017-06-12T18:36:02Z"},{"number":9095,"title":"Packaging multi-services in monorepositories (e.g. with Lerna)","comments":53,"created_at":"2021-03-09T14:50:21Z"},{"number":8666,"title":"Optimise upload of deployment artifacts","comments":49,"created_at":"2020-12-23T13:28:43Z"},{"number":6580,"title":"Improve packaging of lambdas","comments":45,"created_at":"2019-08-22T15:30:55Z"},{"number":6771,"title":"Setting existing:true on S3 bucket causes deployment to fail","comments":44,"created_at":"2019-09-30T13:44:17Z"},{"number":4571,"title":"Feature Request: Using both external and serverless.yml env vars","comments":42,"created_at":"2017-12-13T19:29:45Z"},{"number":6679,"title":"Invoke local keeps hanging after response","comments":40,"created_at":"2019-09-12T22:39:56Z"},{"number":5008,"title":"Better tearing down of lambda functions inside of VPC","comments":40,"created_at":"2018-05-28T21:04:52Z"}],"discussions":[{"number":13478,"title":"Open-source license violation","comments":1,"category":"General","created_at":"2026-04-03T16:38:35Z"},{"number":13433,"title":"Deploying to multiple accounts but only one on dashboard","comments":0,"category":"General","created_at":"2026-03-26T09:00:29Z"},{"number":13309,"title":"Disabling auto-updates","comments":3,"category":"Q&A","created_at":"2026-01-30T17:21:25Z"},{"number":13306,"title":"Dependendies not included in zip package","comments":2,"category":"Q&A","created_at":"2026-01-30T11:47:33Z"},{"number":13151,"title":"Source for python requirements installation?","comments":2,"category":"Q&A","created_at":"2025-10-31T21:16:21Z"},{"number":13150,"title":"Serverless Community Slack?","comments":0,"category":"Q&A","created_at":"2025-10-31T21:01:14Z"},{"number":13145,"title":"Account is in an unusable state","comments":0,"category":"General","created_at":"2025-10-24T15:21:37Z"},{"number":13137,"title":"PythonRequirementsLambdaLayer not found in CFN template","comments":1,"category":"Q&A","created_at":"2025-10-17T12:45:10Z"}],"latest_release":{"name":"4.46.0","tag":"sf-core@4.46.0","published_at":"2026-10-28T21:08:11Z","body":"# 4.46.0\r\n\r\n## Features\r\n\r\n- **Run web apps in `serverless dev`.** `serverless dev` now runs a service's web apps on your machine, in the same session as its functions and with no redeploy. Requests to the web app's real URL (and a custom domain in front of it) reach your local server, which gets the deployed environment variables and the web app's execution-role credentials. A local URL on `localhost` serves it with your framework's hot reload. Set `webApps.<name>.dev.command` to start a dev server such as `next dev`, or leave it out to run `entry` from source. When your machine doesn't answer in time, the deployed code answers instead, and stopping the session puts the deployed code back. `--web-app` and `--skip-web-app` choose which web apps run, and `--local-only` keeps the real URL on the deployed code. Requests are recorded for `serverless dev requests` and `serverless dev replay`, as invocations are. Read more in the [Dev Mode guide](https://www.serverless.com/framework/docs/providers/aws/guide/dev-mode#web-apps) and the [`serverless dev` reference](https://www.serverless.com/framework/docs/providers/aws/cli-reference/dev), and try the [Next.js example](https://github.com/serverless/examples/tree/v4/aws-node-nextjs-web-app). (#14059)\r\n\r\n```yaml\r\nwebApps:\r\n  site:\r\n    entry: .next/standalone/server.js\r\n    dev:\r\n      command: next dev --hostname 127.0.0.1 # run with PORT and HOSTNAME set\r\n```\r\n\r\n```bash\r\nserverless dev --stage alice --web-app site\r\n```\r\n\r\n- **Subscribe functions to EventBridge Custom Event Buses.** When `eventBus` is a Custom Event Bus (its ARN, a variable that resolves to one, or a `Ref` or `Fn::GetAtt … EventBusArn` to an `AWS::EventsV2::EventBus` in `resources`), the `eventBridge` event subscribes the function to it. Functions receive arrays of up to 10 events per call, with AWS's retry policy. New settings switch each default: `ordering: fifo` for ordered delivery, `batchSize`, `maximumBatchingWindow`, `async`, `resumePosition` and `role`. The Framework creates one delivery role per service. Bus names, the default bus and Classic event bus ARNs work as before. `serverless agent inspect` shows the subscribers and buses. Read more in [Custom Event Bus](https://www.serverless.com/framework/docs/providers/aws/events/event-bridge#custom-event-bus), and try the [Compose example](https://github.com/serverless/examples/tree/v4/compose-eventbridge-custom-bus). (#14051)\r\n\r\n```yaml\r\nfunctions:\r\n  processOrder:\r\n    handler: handler.process\r\n    events:\r\n      - eventBridge:\r\n          eventBus: !GetAtt OrdersBus.EventBusArn\r\n          ordering: fifo\r\n          pattern:\r\n            source:\r\n              - orders.service\r\n\r\nresources:\r\n  Resources:\r\n    OrdersBus:\r\n      Type: AWS::EventsV2::EventBus\r\n      Properties:\r\n        Name: orders\r\n```\r\n\r\n- **`serverless invoke` reaches durable functions.** Without `--qualifier`, `serverless invoke` now targets the alias a durable function's deploy publishes. The durable execution ARN is printed (`Durable execution started: <arn>` with `--type Event`), and the new `--json` flag prints one object with the status code, qualifier, executed version, durable execution ARN, function error, payload and log. A synchronous invoke of a function whose `executionTimeout` is above 900 seconds stops before calling Lambda and suggests `--type Event`. `durableConfig` now also applies to OS-only runtimes from `provided.al2023` (for example Go) and to container image functions. Read more in [Durable Functions](https://www.serverless.com/framework/docs/providers/aws/guide/functions#durable-functions) and [invoking durable functions](https://www.serverless.com/framework/docs/providers/aws/cli-reference/invoke#durable-functions). (#14049)\r\n\r\n```bash\r\nserverless invoke -f checkout --type Event --durable-execution-name order-1042 --json\r\n```\r\n\r\n> **Note**\r\n> Before this release, `durableConfig` on a container image function deployed the function without durable execution. It now takes eff"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}