在本文中,我们将使用 AWS CLI 从零开始创建一个 AWS Lambda 函数,运行环境为 Python 3.13,并为其配置必要的 IAM 角色权限。我们将创建一个名为 helloworld-lambda-function
的函数,并赋予其执行角色 helloworld-lambda-function-role
。🚀 准备工作
准备工作
在开始之前,请确保你已完成以下准备:
安装并配置 AWS CLI
确保你已安装 AWS CLI 并运行过aws configure
,配置了有效的 AWS 访问密钥(Access Key)和密钥(Secret Key),以及默认区域(如us-east-1
)。aws configure
确保你有 IAM 权限
你需要拥有创建 IAM 角色、Lambda 函数和上传代码的权限。安装 Python 3.13(用于本地测试)
虽然 Lambda 使用云端运行环境,但本地开发建议使用相同版本。
步骤 1:创建 Lambda 函数代码
首先,创建一个包含 Lambda 函数代码的文件夹和文件。
mkdir helloworld-lambda
cd helloworld-lambda
创建 lambda_function.py
文件:
cat > lambda_function.py << EOF
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('hello world!')
}
EOF
步骤 2:打包代码为 ZIP 文件
Lambda 要求上传代码为 ZIP 包。
zip function.zip lambda_function.py
你会看到当前目录下生成了 function.zip
。
步骤 3:创建 IAM 角色(Trust Policy)
Lambda 需要一个执行角色(Execution Role),允许它在运行时与其他 AWS 服务交互。
3.1 创建信任策略文件
创建一个名为 trust-policy.json
的文件,内容如下:
cat > trust-policy.json << EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
3.2 使用 CLI 创建 IAM 角色
aws iam create-role \
--role-name helloworld-lambda-function-role \
--assume-role-policy-document file://trust-policy.json
✅ 输出中会返回新创建的角色 ARN,例如:
arn:aws:iam::123456789012:role/helloworld-lambda-function-role
步骤 4:附加基础执行策略
为角色附加 AWSLambdaBasicExecutionRole
策略,以便 Lambda 可以写入 CloudWatch Logs。
aws iam attach-role-policy \
--role-name helloworld-lambda-function-role \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
步骤 5:创建 Lambda 函数
现在使用 AWS CLI 创建 Lambda 函数。
aws lambda create-function \
--function-name helloworld-lambda-function \
--runtime python3.13 \
--role arn:aws:iam::123456789012:role/helloworld-lambda-function-role \
--handler lambda_function.lambda_handler \
--zip-file fileb://function.zip \
--description "A simple Hello World Lambda function using Python 3.13"
⚠️ 请将
--role
中的 ARN 替换为你账户的实际角色 ARN(可在上一步输出中找到)。
验证创建结果
查看函数信息
aws lambda get-function --function-name helloworld-lambda-function
查看角色信息
aws iam get-role --role-name helloworld-lambda-function-role
步骤 6:测试 Lambda 函数
你可以通过 CLI 调用函数进行测试。
创建测试事件文件 event.json
cat > event.json << EOF
{}
EOF
调用函数
aws lambda invoke \
--function-name helloworld-lambda-function \
--payload file://event.json \
response.json
查看响应:
cat response.json
预期输出:
{"statusCode": 200, "body": "\"hello world!\""}
清理资源(可选)
如果你只是测试,建议删除资源以避免产生费用。
# 删除 Lambda 函数
aws lambda delete-function --function-name helloworld-lambda-function
# 分离策略并删除 IAM 角色
aws iam detach-role-policy \
--role-name helloworld-lambda-function-role \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
# 删除IAM 角色
aws iam delete-role --role-name helloworld-lambda-function-role
总结
在本文中,我们通过 AWS CLI 完成了以下操作:
创建了 Python 3.13 的 Lambda 函数代码
打包并上传 ZIP 文件
创建了信任 Lambda 服务的 IAM 角色
附加了基本执行权限
成功部署并测试了函数
使用 CLI 创建 Lambda 函数非常适合自动化部署、CI/CD 流程或脚本化管理。