在本文中,我们将使用 AWS CLI 从零开始创建一个 AWS Lambda 函数,运行环境为 Python 3.13,并为其配置必要的 IAM 角色权限。我们将创建一个名为 helloworld-lambda-function 的函数,并赋予其执行角色 helloworld-lambda-function-role🚀 准备工作

准备工作

在开始之前,请确保你已完成以下准备:

  1. 安装并配置 AWS CLI
    确保你已安装 AWS CLI 并运行过 aws configure,配置了有效的 AWS 访问密钥(Access Key)和密钥(Secret Key),以及默认区域(如 us-east-1)。

    aws configure
  2. 确保你有 IAM 权限
    你需要拥有创建 IAM 角色、Lambda 函数和上传代码的权限。

  3. 安装 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

2025-08-17T17:16:16-vwwtxqay.png

查看响应:

cat response.json

预期输出:

{"statusCode": 200, "body": "\"hello world!\""}

2025-08-17T17:17:15-bowlymlv.png

清理资源(可选)

如果你只是测试,建议删除资源以避免产生费用。

# 删除 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

2025-08-17T17:19:48-vhnrnxjv.png


总结

在本文中,我们通过 AWS CLI 完成了以下操作:

  • 创建了 Python 3.13 的 Lambda 函数代码

  • 打包并上传 ZIP 文件

  • 创建了信任 Lambda 服务的 IAM 角色

  • 附加了基本执行权限

  • 成功部署并测试了函数

使用 CLI 创建 Lambda 函数非常适合自动化部署、CI/CD 流程或脚本化管理。


参考文档