Question: I am trying to deploy Lambda functions using AWS Cloud9. When I press deploy, all of my functions are deployed/synced at the same time rather than just the one I selected when deploying. Same thing when right clicking on the function and pressing deploy. I find this quite annoying and wondering if there is any work around?

Answer: 
When you click deploy Cloud9 runs `aws cloudformation package` and `aws cloudformation deploy` on your `template.yaml` file in the background. (source: I developed the Lambda integration for AWS Cloud9).

Because all your files are bundled into one serverless application and there is only one CloudFormation stack they can only be all deployed at once with CloudFormation.

If you're only making a code change for one function and are not modifying any configuration settings you could update that one function from the command line with the command:

```
zip -r - . | aws lambda update-function-code --function-name <function-name>`

```

Run this in the same folder as your `template.yaml` file, replacing `<function-name>` with it's full generated name like `cloud9-myapp-myfunction-ABCD1234` (You can see the full name under the remote functions list in the AWS Resources panel).
In AWS Cloud9, Lambda functions are created within serverless applications and are therefore deployed via CloudFormation. With CloudFormation, the whole stack is deployed at once, so all functions are deployed together (see [this discussion](https://github.com/awslabs/serverless-application-model/issues/125) for more info).