教 程 目 录
在本章中,我们将在Python中创建一个简单的AWS Lambda函数,并详细了解其工作概念.
在继续开始在AWS中创建Lambda函数之前,我们需要AWS工具包支持Python.为此,请按照下面给出的步骤进行操作,并观察附加的相应屏幕截图;
步骤1
登录AWS控制台并创建Lambda函数和选择语言为Python.
第2步
现在,单击创建功能按钮,然后输入在Python中创建简单AWS Lambda的详细信息.此代码返回消息使用Python从Lambda发送Hello,看起来如下所示 :
步骤3
现在,保存更改并测试代码以查看输出.使用UI中的测试按钮在AWS控制台中测试时,您应该看到以下输出和日志.
步骤4
现在,您可以在任何编辑器或Python的IDE中编写代码.在这里,我们使用visual studio代码编写代码.您应该稍后压缩文件并在AWS控制台中上传.
在这里,我们已经压缩了代码并使用了AWS控制台.
步骤5
现在,选择上传.ZIP文件选项,如下所示 :
Python的处理程序详细信息
请注意,处理程序必须是文件的名称,后跟函数的名称.在上面的例子中,我们的文件名是hellopython.py,函数的名称是my_handler;所以处理程序将是hellopython.my_handler.
上传完成并保存更改后,它实际上会在AWS Lambda控制台的在线编辑器中显示zip文件的详细信息.现在,让我们测试代码以查看输出和日志.
现在,让我们使用以下示例代码&minus来理解Lambda函数的详细信息;def my_handler(event, context):
return "aws lambda in python using zip file"
在上面的代码中,函数名称my_handler有2个参数,事件和上下文.
Python中的上下文对象
上下文对象提供了一些详细信息,如Lambda函数的名称,剩余时间(以毫秒为单位),请求ID,云监视组名,超时详细信息等.
上下文给出的表中显示了上下文对象可用的方法和属性;
1get_remaining_time_in_millis()
此方法给出剩余时间(以毫秒为单位),直到lambda函数终止函数Sr.No属性&说明
1function_name
这给出了aws lambda函数名称
2function_version
这给出了执行aws lambda函数的版本
3invoked_function_arn
这将提供ARN详细信息.
4memory_limit_in_mb
这显示添加的内存限制创建lambda函数时
5aws_request_id
这给出了aws请求ID.
6og_group_name
这将给出cloudwatch组名称的名称
7log_stream_name
这将给出写日志的cloudwatch日志流名称.
8identity
这将提供有关亚马逊的详细信息与aws mobile sdk一起使用时的cognito身份提供者.给出的详细信息如下 :identity.cognito_identity_id
identity.cognito_identity_pool_id
9client_context
这将与aws mobile sdk一起使用时提供客户端应用程序的详细信息.给出的详细信息如下 :client_context.client.installation_id
client_context.client .app_title
client_context.client.app_version_name
client_context.client.app_version_code
client_context.client.app_package_name
client_context.custom - 它具有来自移动客户端应用程序的自定义值的字典
client_context.env - 它具有来自AWS的环境详细信息移动SDK
让我们看一下Python中的一个工作示例输出上下文详细信息.观察下面给出的代码 :def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
上面显示的代码的相应输出在下面和下面给出;
使用Python记录
要使用Python记录信息,我们可以使用打印或记录功能.让我们使用上面的上下文示例并检查inCloudWatch以查看是否打印了日志.请注意以下代码 :def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
CloudWatch中此代码的输出如下所示 :
观察以下示例以了解使用记录器将日志打印到CloudWatch :import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_handler(event, context):
logger.info('Using logger to print messages to cloudwatch logs')
return "aws lambda in python using zip file"
此输出将如下面的截图所示 :
Python中Lambda函数的错误处理
在本节中,让我们看一个工作示例,该示例演示如何在Python中处理错误.观察这里给出的代码和减号;def error_handler(event, context):
raise Exception('Error Occured!')
日志显示如图所示 :
相关新手教程: