AWS Cloud9 现已不再向新客户提供。AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
通过 AWS Toolkit 使用 AWS Lambda 函数
AWS Toolkit 支持 AWS Lambda
Lambda 是完全托管的计算服务,该服务运行您的代码以响应由自定义代码生成的或来自各种 AWS 服务 的事件。这些服务包括 Amazon Simple Storage Service(Amazon S3)、Amazon DynamoDB、Amazon Kinesis、Amazon Simple Notification Service(Amazon SNS)和 Amazon Cognito。
重要
如果要构建使用 Serverless Application Model(SAM)提供的资源的 Lambda 应用程序,请参阅通过 AWS 工具包使用 AWS SAM。
调用远程 Lambda 函数
使用 AWS Toolkit,您可以通过各种方式与 AWS Lambda
有关 Lambda 的更多信息,请参阅 AWS Lambda 开发人员指南。
注意
假设您已使用 AWS Management Console 或以其他方式创建了 Lambda 函数。您可以从 AWS Toolkit 中调用这些函数。要使用 AWS Toolkit 创建可部署到 AWS Lambda 的新函数,必须首先创建无服务器应用程序。
先决条件
-
请确保您在其中配置的凭证包含对 AWS Lambda 服务的适当读/写访问权限。如果在 AWS Explorer 中的 Lambda 下,您看到类似于“Error loading Lambda resources”(加载 Lambda 资源时出错)的消息,请检查附加到这些凭证的权限。对权限所做的更改需要几分钟时间才会对 AWS Toolkit 中的 AWS Explorer 生效。
调用 Lambda 函数
重要
使用 AWS Toolkit 调用 API 方法可能会对资源导致无法撤消的更改。例如,如果您调用 POST
方法,则调用成功时,API 的资源将更新。
您可以使用 AWS Tookit 在 AWS 上调用 Lambda 函数。
-
在 AWS Explorer 中,选择要调用的 Lambda 函数的名称,然后打开其上下文菜单。
-
选择 Invoke on AWS(在 Amazon 上调用)。
-
在打开的 Invoke function(调用函数)窗口中,为 Lambda 函数所需的负载选择一个选项。(该负载为您想要作为输入提供到您的 Lambda 函数的 JSON。) 您可以选择 Browse(浏览)来选择要用作负载的文件,或使用下拉字段为负载选择模板。在这种情况下,Lambda 函数可能会将字符串显示为输入,如文本框所示。
选择 Invoke(调用)来调用 Lambda 并传入负载。
在 AWS Lambda 选项卡中,您将看到 Lambda 函数的输出。
下载、上传和删除 Lambda 函数
AWS 工具包提供了用于在 AWS Cloud9 IDE 中导入和上传 Lambda 函数的选项。
下载 Lambda 函数
通过下载 Lambda 函数,您还可以从 AWS Cloud 中下载描述该函数的项目文件,并在 AWS Cloud9 IDE 中使用这些文件。
下载 Lambda 函数
-
在 AWS Explorer 中的 Lambda 节点下,打开函数的上下文(右键单击)菜单,然后选择 Download(下载)。
-
当被要求 Select a workspace folder for your new project(为新项目选择工作区文件夹),您可以执行下列操作之一:
-
选择建议创建与 Lambda 项目名称相同子文件夹的文件夹。
-
选择 Select a different folder(选择其他文件夹)打开一个对话框,为项目子文件夹浏览并选择其他父文件夹。
IDE 将打开一个新的编辑器窗口。
-
配置下载的 Lambda 函数以运行和调试
要将下载的 Lambda 函数作为无服务器应用程序运行和调试,需要在 launch.json
文件中定义启动配置。在 AWS Management Console 中创建的 Lambda 函数可能不包括在启动配置中。因此,您需要手动添加它。
将 Lambda 函数添加到启动配置
-
下载 Lambda 函数后,打开 Environment(环境)窗口以查看其文件夹和文件。
-
接下来,检查 Lambda 函数是否包含在
/home/ec2-user/.c9/launch.json
文件中。如果它不存在,请执行以下操作以向函数的代码添加 CodeLens 链接:打开定义 Lambda 函数的源代码文件(例如,
.js
或.py
文件)。然后,检查您是否有 CodeLens 链接可以用来将 lambda 函数添加到launch.json
文件中。CodeLens 显示在函数上方并包括Add Debug Config
链接。-
选择 IDE 左侧的 Go(转到)(放大镜图标),然后输入“sam hint”以显示
AWS: Toggle SAM hints in source files
命令。选择此命令以运行。 关闭 Lambda 源代码文件,然后重新打开它。
-
如果重新打开文件后源代码中有 CodeLens,请选择
Add Debug Config
以添加启动配置。
如果即使在切换 SAM hint 选项之后您仍无法添加 CodeLens,请执行以下操作以添加启动配置:
-
选择 IDE 左侧的 Go(转到)(放大镜图标),然后键入“config”以显示
AWS: SAM Debug Configuration Editor
命令。选择此命令以运行。 -
此时将显示 SAM Debug Configuration Editor(SAM 调试配置编辑器)。您可以使用此编辑器定义启动配置属性。有关信息,请参阅使用 SAM 模板运行和调试无服务器应用程序中用于configuring launch properties的步骤。
注意
如果 Lambda 函数没有 SAM 应用程序的
template.yaml
,则需要添加一个。有关更多信息,请参阅创建 AWS SAM 模板。 -
在编辑器中输入所需的配置信息后,启动配置将添加到 launch.json 文件中。
-
在为 Lambda 函数定义启动配置后,您可以通过执行以下操作来运行它:
在 IDE 顶部,选择 Auto(自动)旁边的箭头,然后选择相关的启动配置。
接下来,选择 Run(运行)。
上传 Lambda 函数
您可以使用本地代码更新现有的 Lambda 函数。以这种方式更新代码不会使用 AWS Serverless Application Model CLI 进行部署,并且不会创建 AWS CloudFormation 堆栈。通过这种方法,您可以使用 Lambda 支持的任何运行时上传 Lambda 函数。
有几个接口选项可用于通过 AWS Toolkit 上载 Lambda 函数。
-
在项目文件的 Environment(环境)窗口中,选择要上载的 Lambda 应用程序的
template.yaml
的上下文(右键单击)菜单,然后选择 Upload Lambda(上传 Lambda)。或者,按 Ctrl+P 以打开转到任意内容窗格,然后输入“lambda”以访问 AWS 上传 Lambda 命令。接下来,选择它以开始上载过程。
-
下一步,选择您希望上传到的 AWS 区域。
-
现在,选择用于上载 Lambda 函数的选项:
上传 zip 格式归档
-
从菜单中选择 ZIP Archive(ZIP 格式归档)。
-
从您的 AWS Cloud9 文件系统选择一个 .zip 格式文件,然后选择 Open(打开)。
按原样上载目录
-
从菜单中选择 Directory(目录)。
-
从您的 AWS Cloud9 文件系统选择目录,然后选择 Open(打开)。
-
指定处理事件的 Lambda 函数处理程序。当调用函数时,Lambda 运行此处理程序方法。
注意
选择 Lambda 函数时,您可以从显示的列表中进行选择。如果您不知道要选择哪个函数,可以输入此 Toolkit 中提供的 Lambda 函数的 Amazon 资源名称(ARN)。
将显示一个对话框,询问您是否希望将此代码发布为 Lambda 函数的最新版本。选择 Yes(是)以确认发布。
注意
您还可以打开该文件夹的父文件夹上下文(右键单击)菜单,然后选择 Upload Lambda(上传 Lambda)来上传 Lambda 应用程序。将自动选择该父文件夹进行上传。
-
在 AWS Explorer中,在要导入的 Lambda 函数的名称上打开上下文(右键单击)菜单。
-
选择 Upload Lambda(上载 Lambda)。
-
从上传 Lambda 函数的三个选项中进行选择。
上载预先制作的 zip 格式归档
-
从菜单中选择 ZIP Archive(ZIP 格式归档)。
-
从您的 AWS Cloud9 文件系统选择一个 .zip 格式文件,然后选择 Open(打开)。
-
使用模态对话框确认上传。这将上传 .zip 格式文件,并在部署后立即更新 Lambda。
按原样上载目录
-
从菜单中选择 Directory(目录)。
-
从您的 AWS Cloud9 文件系统选择目录,然后选择 Open(打开)。
-
当系统提示构建目录时,选择 No(否)。
-
使用模态对话框确认上传。这将按原样上传目录,并在部署后立即更新 Lambda。
构建和上载目录
-
从菜单中选择 Directory(目录)。
-
从您的 AWS Cloud9 文件系统选择目录,然后选择 Open(打开)。
-
当系统提示构建目录时,选择 Yes(是)。
-
使用模态对话框确认上传。这将在目录中使用 AWS SAM CLI
sam build
命令构建代码并在部署后立即更新 Lambda。
-
部署 Lambda 函数以进行远程访问
您可以通过将本地函数部署为无服务器 SAM 应用程序来远程使用它们。
将 Lambda 函数部署为 SAM 应用程序
-
在 AWS Explorer 中,打开 Lambda 节点的上下文(右键单击)菜单,然后选择 Deploy SAM Application(部署 SAM 应用程序)。
-
在命令窗格中,选择将函数定义为无服务器应用程序的 YAML template(YAML 模板)。
-
接下来,选择 Amazon S3 存储桶来进行 Lambda 部署。也可以选择创建存储桶来进行部署。
-
现在输入您要部署到的 AWS CloudFormation 堆栈的名称。如果指定现有堆栈,则该命令将更新堆栈。如果指定了新堆栈,则该命令将创建它。
输入堆栈的名称后,Lambda 函数会开始部署为 SAM 应用程序。成功部署后,SAM Lambda 应用程序可以远程使用。这样,您就可以从其他 AWS Cloud9 开发环境下载或调用该应用程序。
如果您想从头开始创建 Lambda 函数,我们建议按照以下步骤操作以使用 AWS Toolkit 创建无服务器应用程序。
删除 Lambda 函数
您也可以使用相同的上下文(右键单击)菜单删除 Lambda 函数。
警告
请勿使用此过程删除与 AWS CloudFormation 关联的 Lambda 函数。例如,不要删除本指南前文中创建无服务器应用程序时创建的 Lambda 函数。这些函数必须通过 AWS CloudFormation 堆栈删除。
-
在 AWS Explorer 中,选择要删除的 Lambda 函数的名称,然后打开其上下文(右键单击)菜单。
-
选择 Delete(删除)。
-
在出现的消息中,选择 Yes(是)以确认删除。
删除此函数后,它不再在 AWS Explorer 视图中列出。