Versions and aliases
When you're building your serverless application, you must separate your deployment environments to test new changes without impacting your production. Therefore, having multiple versions of your Lambda functions makes sense.
Versioning
A version represents a state of your function's code and configuration in time. By default, each Lambda function has the $LATEST
version pointing to the latest changes of your function, as shown in the following screenshot:

In order to create a new version from the $LATEST
version, click on Actions
and Publish new version
. Let's call it 1.0.0
, as shown in the next screenshot:

The new version will be created with an ID=1 (incremental). Note the ARN Lambda function at the top of the window in the following screenshot; it has the version ID:

Once the version is created, you cannot update the function code, shown as follows:

Moreover, advanced settings, such as IAM roles, network configuration, and compute usage, cannot be changed, shown as...