AWS API Gateway 不仅限于通过 S3 静态网页的访问,它可以与其他 AWS 服务和自定义代码结合使用,提供更强大的功能。
以下是一个使用 AWS API Gateway 和 Lambda 函数来访问 S3 静态网页的示例代码:
import boto3
def lambda_handler(event, context):
# 获取请求的参数
bucket_name = event['queryStringParameters']['bucket']
object_key = event['queryStringParameters']['key']
# 从 S3 获取文件内容
s3 = boto3.client('s3')
response = s3.get_object(Bucket=bucket_name, Key=object_key)
file_content = response['Body'].read().decode('utf-8')
# 返回文件内容
return {
'statusCode': 200,
'body': file_content,
'headers': {
'Content-Type': 'text/html'
}
}
创建一个 AWS API Gateway,并配置一个 GET 方法来触发 Lambda 函数。在集成请求中,将 queryStringParameters 映射到 Lambda 函数的输入参数。
部署 API Gateway,并获取 API 的访问链接。
现在,当你访问 API Gateway 提供的链接时,它将触发 Lambda 函数,该函数将从 S3 中获取指定的静态网页文件,并将其返回给客户端。可以通过在请求中传递 bucket 和 key 参数来指定要访问的 S3 文件。
请注意,这只是一种基本示例,您可以根据自己的需求和 S3 配置进行扩展和修改。