在IAM角色中使用环境变量,以向Lambda函数授予相应的权限。例如,如果我们希望Lambda函数可以读取一个S3存储桶中的对象,我们可以在IAM角色的权限策略中添加以下代码:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
然后,我们可以将存储桶名称定义为一个环境变量,并在Lambda函数中调用它。例如,在Python中,我们可以使用以下代码来定义并使用环境变量:
import os
import boto3
s3 = boto3.client('s3')
bucket_name = os.environ['BUCKET_NAME']
def lambda_handler(event, context):
response = s3.get_object(Bucket=bucket_name, Key='example.txt')
data = response['Body'].read()
# do something with data
return {'statusCode': 200, 'body': data}
然后,我们可以在Lambda函数的配置中设置环境变量BUCKET_NAME为我们希望访问的存储桶名称。这样,Lambda函数将使用定义的IAM角色,并具有访问指定S3存储桶的权限。