According to my experience, if you want to create an AWS Lambda without interactive mode, 15 templates below don't exists for each runtime, for example, Data processing template only exists for dotnet and nodejs.
Notice that third template name is Hello World Example with Powertools for AWS Lambda in below output, but if you want to create a project with python runtime and third template in the below sam init output, you have to use hello-world-powertools-python as a template name. But it is not mentioned in help. So, i just used sam init in interactive mode and output of this command showed me template name.
sam init --name my-data-processing-app --runtime python3.9 --dependency-manager pip --app-template hello-world-powertools-python
$ sam init
You can preselect a particular runtime or package type when using the `sam init` experience.
Call `sam init --help` to learn more.
Which template source would you like to use?
1 - AWS Quick Start Templates
2 - Custom Template Location
Choice: 1
Choose an AWS Quick Start application template
1 - Hello World Example
2 - Data processing
3 - Hello World Example with Powertools for AWS Lambda
4 - Multi-step workflow
5 - Scheduled task
6 - Standalone function
7 - Serverless API
8 - Infrastructure event management
9 - Lambda Response Streaming
10 - Serverless Connector Hello World Example
11 - Multi-step workflow with Connectors
12 - Full Stack
13 - Lambda EFS example
14 - DynamoDB Example
15 - Machine Learning
Template: 1
Use the most popular runtime and package type? (Python and zip) [y/N]:
Serverless framework is a CLI to build cloud applications. There are more than 10 Serverless Infrastructure Providers like AWS, Azure and GCP as shown below screenshot.
Find more Serverless Framework CLI command in Azure Serverless TypeScript project in GitHub
According to my experience, Serverless Framework gives a better support for AWS provider, for example, if you see project template below, there are many project templates for AWS but very less support for other providers.
Run the following code to verify Homebrew is installed
$ brew --version
Homebrew 3.2.6
Homebrew/homebrew-core (git revision c4d5aac8ec; last commit 2021-08-07)
Homebrew/homebrew-cask (git revision 1169dcb641; last commit 2021-08-07)
AWS CLI
AWS CLI, or Amazon Web Services Command Line Interface, is a unified tool that allows you to manage and interact with AWS services from the command line. It provides direct access to public APIs for AWS services. You can use the AWS CLI for a wide range of functions, from launching and controlling EC2 instances, to creating S3 buckets, and more.
Like Azure CLI, the AWS CLI is also cross-platform and supports Windows, macOS, and Linux. It's often used for scripting and automation tasks, making it a valuable tool for system administrators and DevOps professionals.
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: aJwerXUtnFEMI/K7MDENG/EXAMPLEKEY
Default region name [None]: eu-west-2
Default output format [None]: json
Create Named Profiles
$ aws configure --profile kenan-dev
AWS Access Key ID [None]: KAKAI44Q33DHBEXAMPLE
AWS Secret Access Key [None]: qwertGbClwBF/2Zp9Utk/EXAMPLEKEY
Default region name [None]: eu-west-2
Default output format [None]: json
List AWS Profiles
$ aws configure list-profiles
List AWS Configuration Data
$ aws configure list
$ aws configure list --profile kenan-dev
Set any credential or configuration settings
$ aws configure set aws_access_key_id bar --profile default
$ aws configure set aws_secret_access_key foo --profile kenan-dev
Get any credential or configuration settings
$ aws configure get aws_access_key_id --profile default
$ aws configure get region --profile kenan-dev
AWS SAM CLI
The AWS SAM(Serverless Application Model) CLI is a command-line tool that makes it easier for developers to create, deploy, and test serverless applications using AWS.
With AWS SAM CLI, you can define serverless applications that use several other AWS resources, not just AWS Lambda functions. Here are some examples:
API Gateway: You can define APIs in your SAM template that AWS will create using Amazon API Gateway.
DynamoDB Tables: You can define DynamoDB tables in your SAM template.
S3 Buckets: You can define Amazon S3 buckets in your SAM template.
EventBridge Events: You can define EventBridge events in your SAM template.
Step Functions: You can define state machines in your SAM template that AWS will create using AWS Step Functions.
SNS Topics, SQS Queues: You can define Simple Notification Service (SNS) topics and Simple Queue Service (SQS) queues in your SAM template, and much more.
Additionally, AWS SAM CLI helps in building, packaging, deploying, and testing serverless applications defined by SAM templates. It supports step-through debugging of your serverless applications, tailing logs of Lambda functions, generating sample payloads for various event sources, and validating SAM templates, amongst other things.
So, while AWS Lambda functions are a key component of many serverless applications, AWS SAM CLI offer a broader range of capabilities for defining, developing, and managing serverless applications on AWS.