是的,可以通过事件触发程序自动触发Lambda函数而不使用API端点。AWS Lambda支持多种事件源,例如S3对象创建、DynamoDB表更改、SNS主题发布等等。在这些情况下,Lambda函数将自动调用,而无需使用API端点。
下面是通过S3对象创建事件触发并调用Lambda函数的Python代码示例:
import boto3
import json
def lambda_handler(event, context):
s3 = boto3.client('s3')
# 获取S3对象信息和事件源
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
# 处理S3对象内容
obj = s3.get_object(Bucket=bucket, Key=key)
body = obj['Body'].read().decode('utf-8')
# 输出S3对象内容
print(body)
return {
'statusCode': 200,
'body': json.dumps('Lambda function invoked successfully!')
}
在AWS控制台上创建一个Lambda函数,并将上述代码添加到代码编辑器中。然后,将S3对象创建事件添加到Lambda函数的触发器列表中。当S3中有新的对象被创建时,Lambda函数将被触发并处理S3对象的内容。