AWS Lambda教程

AWS CLI 创建和部署

AWS CLI 是一个命令行工具,有助于使用 AWS 服务。我们可以使用它来创建、更新、删除、调用 aws lambda 函数。在本章中,您将详细讨论 AWS CLI 的安装和使用。

安装 AWS CLI

本节将指导您在各种操作系统上安装 AWS CLI。按照给定的步骤操作并观察随附的相应屏幕截图。

对于 Windows

检查您的 Windows 配置并选择以下链接之一来安装 AWS CLI MSI-
对于 Windows 64 位-适用于 Windows(64 位)的 AWS CLI MSI 安装 对于 Windows 32 位-适用于 Windows 的 AWS CLI MSI 安装 (32)
选择相应的链接并单击它后,您可以找到一个窗口,如下所示-
安装 AWS
接下来,设置 windows中的环境路径,如下面的截图所示-
环境路径
完成后,您可以在命令提示符下使用以下命令,查看是否安装了 aws cli-
aws--version
它显示了 aws-cli 版本的详细信息,如下面的屏幕截图所示-
AWS Cli 版本

对于 Linux/Mac

要在 Linux 和 Mac 上安装,您需要 Python 2.6.3 或更高版本。然后,使用以下命令进行进一步的安装过程-
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip"-o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install-i /usr/local/aws-b /usr/local/bin/aws
现在,我们需要配置 AWS 设置。为此,您可以使用以下命令-
aws configure
为此,它需要详细信息,例如-
AWS 访问密钥 ID AWS 秘密访问密钥 默认区域名称 格式的默认输出
您可以从 aws 控制台获取这些详细信息。转到右上角的帐户名称,如图所示-
Helpful Tips
现在,点击 我的安全凭证并从左侧选择用户。按照要求添加具有详细信息的用户。
安全凭证
添加用户并获取访问密钥和秘密密钥。要查看新的访问密钥,请选择 显示。您的凭据将如下所示-
访问密钥 ID-AOSAIOSFOCDD7 示例
秘密访问密钥-aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY
访问键

AWS CLIS 参考命令

下表将提供可用于 aws cli 的命令参考。
aws cli 命令的名称 命令参考
create-function create-function--function-name <value>--runtime <value>--role <value>--handler <value> [--code <value>] [--description <value>] [--timeout <value>] [--memory-size <value>] [--environment <value>] [--kms-key-arn <value>] [--tags <value>] [--zip-file <value>] [--cli-input-json <value>]
list-functions list-functions [--master-region <value>] [--function-version <value>] [--max-items <value>] [--cli-input-json <value>] [--starting-token <value>] [--page-size <value>] [--generate-cli-skeleton <value>]
get-function get-function--function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-function-configuration get-function-configuration--function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-account-settings get-account-settings [--cli-input-json <value>] [--generate-cli-skeleton <value>]
update-function-configuration update-function-configuration--function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory-size <value>] [--vpc-config <value>] [--environment <value>] [--runtime <value>] [--dead-letter-config <value>] [--kms-key-arn <value>] [--tracing-config <value>] [--revision-id <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value> >]
update-function-code update-function-code--function-name <value> [--zip-file <value>] [--s3-bucket<value>] [--s3-key <value>] [--s3-object-version <value>] [--publish |--no-publish] [--dry-run |--no-dry-run] [--revision-id <value>][--cli-input-json <value>][--generate-cli-skeleton <value>]
delete-function delete-function--function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
现在,让我们一一详细讨论这些命令。

创建函数

这个 api 将创建一个新的 lambda 函数。代码需要以 zip 格式提供。如果要创建的函数已经存在,api 将失败。请注意,函数名称区分大小写。

包含的命令

此处给出了可以与 create-function 一起使用的命令列表-
create-function 
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>] 
[--description <value>] 
[--timeout <value>] 
[--memory-size <value>] 
[--environment <value>] 
[--kms-key-arn <value>] 
[--tags <value>] 
[--zip-file <value>] 
[--cli-input-json <value>]

包括的选项

您可以使用上述功能的各种选项如下-
--function-name (string)-这需要函数的名称。名称可以是 64 位字符。
--runtime(string)-在这里您需要指定运行时环境,即语言选择。运行时的详细信息如下-
可用选项 运行时
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C# 1 dotnetcore1.0
C# 2 dotnetcore2.0
Go go1.x
--role(string)-这将是 lambda 策略的名称,即赋予 lambda 函数访问其他服务的角色。它将根据指定的角色拥有权限。
--handler (string)-这是 lambda 代码执行将开始的处理程序的名称。
对于 nodejs,处理程序名称是我们导出的模块名称。 对于java,它是package.classname :: handler 或package.classname 对于python,处理程序是文件名。
--代码(结构)-AWS Lambda 代码
--description (string)-AWS Lambda 函数的描述
--timeout (integer)-超时将具有 lambda 函数必须终止执行的时间。默认为 3 秒。
--memory-size (integer)-这是分配给 aws lambda 函数的内存。 AWS 将根据给定的内存分配 CPU 和内存分配量。
--environment (structure)-它是一个具有 aws lambda 函数所需的环境详细信息的对象。
e.g : Variables = {Name1 = string, Name2 = string}
--kms-key-arn (string)-这是用于加密环境变量的亚马逊资源名称 (ARN)。如果未提供,它将采用默认设置进行加密。
--zip-file (blob)-包含代码详细信息的 zip 文件的路径。
--cli-input-json (string) :根据提供的 JSON 字符串进行服务操作。 JSON 字符串遵循--generate-cli-skeleton 提供的格式。如果在命令行上提供了其他参数,则 CLI 值将覆盖 JSON 提供的值。
现在,让我们使用运行时作为 nodejs 创建一个简单的 AWS Lambda 函数,并添加一些要打印的 console.logs。
考虑一个示例代码来理解相同的-
exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};
现在,压缩文件并将其存储为 awscli.zip

获取 ARN

对于角色,让我们使用我们创建的现有角色中的 arn。要获得 ARN,您必须遵循步骤如下所示。观察随附的相应屏幕截图-

步骤 1

转到 IAM 并从 角色 中选择您想要的角色。角色的 ARN 详细信息如下所示。在 aws cli 中使用 Role ARNcreate-function
Summary Cli
这里观察到角色 arn 是:arn:aws:iam::625297745038:role/lambdaapipolicy
带有 create-function 值的命令如下-
aws lambda create-function 
--function-name "awslambdausingcli" 
--runtime "nodejs8.10" 
--role "arn:aws:iam::625297745038:role/lambdaapipolicy" 
--handler "awscli.handler" 
--timeout 5 
--memory-size 256 
--zip-file "fileb://awscli.zip"
现在,如果您在 aws cli 中运行该命令,您可以找到如下所示的输出-
Command Cli
在 AWS 控制台中,Lambda 函数显示如下-
Cli 函数
功能的详细信息如下所示-
Cli 代码
配置细节如下-
Cli 角色
您可以测试函数并检查输出,如图所示-
Cli 执行
此处显示相应的日志输出-
Cli 输出

列表功能

此 api 提供了迄今为止在 AWS Lambda 中创建的函数列表。

包含的命令

以下是与此 API 相关的命令-
list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

列表功能下的选项

以下是您可以在此列表功能 api 下使用的各种选项-
--master-region(string)-可选。需要显示功能的区域。
--function-version(string)-可选。这将给出函数版本。
--max-items(integer)-可选。这将按照指定的值提供项目。
--cli-input-json(string)-可选。将根据提供的json文件进行操作。
带有值 list-functions的命令如下-
aws lambda list-functions--max-items 3
该命令显示的详细信息如下-
Cli Display

获取函数

这个 api 将提供函数的详细信息以及使用 create-function 上传 zip 文件的 url 链接。带有 zip 详细信息的网址仅在 10 分钟内有效。

包含的命令

以下是与这个 api 相关的命令-
get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

包括的选项

--function-name-AWS Lambda 函数的名称。您还可以指定函数的 Amazon 资源名称。
--qualifier(string)-可选。函数版本可用于获取函数的详细信息。
具有获取函数值的命令是-
aws lambda get-function--function-name awslambdausingcli
命令显示详情如下-
Option Included
它给出了上传邮政编码的网址。在上述情况下,网址是-
https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa

获取功能配置

这将提供 AWS Lambda 函数的配置详细信息。
以下是与此 api 一起使用的命令-
get-function-configuration
--function-name <value>
[--qualifier <value>]
以下是与
一起使用的选项
--function-name (string)- aws lambda 函数的名称。您还可以指定函数的 Amazon 资源名称。
--qualifier(string) − Optional.Function 版本可用于获取函数的详细信息。
具有获取函数值的命令是-
aws lambda get-function-configuration--function-name awslambdausingcli
该命令显示的详细信息如下-
获取函数。

获取帐户设置

此 api 提供帐户设置。

涉及的命令

您可以与此 api 一起使用的命令是-
get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

涉及的选项

您可以在此 api 中使用以下选项-
--cli-input-json(string)- 根据提供的 json 字符串执行服务。
--generate-cli-skeleton(string)- 它在不发送 API 请求的情况下打印 json 输出。
您可以使用以下命令进行 get-account-settings-
aws lambda get-account-settings
当您执行上面给出的命令时,您可以看到以下输出-
Option Involved

更新功能配置

此 API 有助于更新创建的 AWS Lambda 函数的配置详细信息。您可以更改内存、超时、处理程序、角色、运行时间、描述等。

涉及的命令

以下是update-function-configuration api中涉及的命令-
update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

涉及的选项

以下是update-function-configuration api涉及的选项-
--function-name- aws lambda 函数的名称
--role (string)- 可选。需要更新角色的 ARN。
--handler (string)- 可选。 aws lambda 函数的处理程序详细信息。
--description(string)- 可选。功能说明。
--timeout(integer)- 可选。 aws lambda 函数可以终止所需的时间。
--memory-size(integer)- 可选。这是分配给 aws lambda 函数的内存。 AWS 将根据给定的内存分配 CPU 和内存分配量。
--环境(结构)- 可选。它是一个具有 aws lambda 函数所需的环境详细信息的对象。
e.g: Variables = {Name1 = string, Name2 = string}
--runtime(string) − 这里需要指定运行时环境,即语言选择。
运行时的详细信息如下表所示-
可用选项 运行时
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C# 1 dotnetcore1.0
C# 2 dotnetcore2.0
go1.x
--cli-input-json (string)- 可选。这将在提供的 json 字符串中指定的 api 上执行操作。
--generate-cli-skeleton (string)- 可选。这将在不执行 api 的情况下输出所有细节的 JSON 骨架。输出可用作 --cli-input-json 的输入。
现在,让我们更改之前创建的 AWS Lambda 函数的内存和超时。按照下面给出的步骤并观察为此目的附加的相应屏幕截图-

步骤 1

发生变化前的内存和超时如下-
超时

步骤 2

现在,使用 update-function-configuration,让我们将内存和超时更改为 320MB,将超时更改为 10 秒。为此,请使用以下带有值的命令-
aws lambda update-function-configuration--function-name “awslambdusingcli” 
--timeout 10--memory-size 320

步骤 3

然后您可以看到以下输出作为显示-
Cli 更新

步骤 4

使用 update-function-configuration后AWS控制台显示如下-
Cli 配置

更新功能代码

此 API 将更新现有 AWS Lambda 函数的代码。

涉及的命令

update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

涉及的选项

以下是更新函数代码 API 涉及的选项-
--function-name(string) − aws lambda 函数的名称
--zip-file (blob)- 可选。包含要更新的代码的 zip 文件的路径。
--s3-bucket(string)- 可选。 S3 存储桶名称,其中包含已上传代码的 zip 文件。
--s3-key(string)- 可选。必须上传的 AWS s3 对象键名称。
--s3-object-version (string)- 可选。 AWS s3 对象版本。
--cli-input-json (string)- 可选。这将在提供的 json 字符串中指定的 api 上执行操作。
--generate-cli-skeleton (string)- 可选。这将在不执行 api 的情况下输出所有细节的 JSON 骨架。输出可用作--cli-input-json 的输入。
更新后的代码如下所示-
exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};
您可以使用以下带有值的 命令-
aws lambda update-function-code--function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"
相应的输出如下所示-
Cli 目的
AWS 控制台的显示如下所示-
AWS Cli 控制台
对应的日志输出如下图-
Cli 日志

删除函数

delete aws cli api 将删除函数 g

包含的命令

此处给出了相同的命令详细信息-
delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

包括的选项

此 api 中包含的选项如下所示-
--function-name(string)- 这将采用 lambda 函数名称或 aws lambda 函数的 arn。
--qualifier (string)- 这是可选的。这里可以指定需要删除的aws lambda版本。
--cli-input-json(string)- 根据提供的 JSON 字符串执行服务操作。 JSON 字符串遵循--generate-cli-skeleton 提供的格式。如果在命令行上提供了其他参数,则 CLI 值将覆盖 JSON 提供的值。
--generate-cli-skeleton(string)- 它在不发送 API 请求的情况下将 json 骨架打印到标准输出。
您可以为此目的使用带有值的以下命令-
aws lambda delete-function--function-name "lambdatestcli"
删除函数
现在,观察该函数将不会出现在 AWS Lambda 函数列表中-
Cli 关键字
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4