AWS CLI 是一个命令行工具,可帮助您使用AWS服务.我们可以用它来创建,更新,删除,调用aws lambda函数.在本章中,您将详细讨论AWS CLI的安装和使用.
安装AWS CLI
本节将指导您完成在各种操作系统上安装AWS CLI.按照给出的步骤操作并观察相应的屏幕截图.
对于Windows
检查Windows配置并选择以下链接之一来安装AWS CLI MSI :
对于Windows 64 bit : 适用于Windows的AWS CLI MSI安装(64位)
对于Windows 32位 : 适用于Windows的AWS CLI MSI安装(32)
选择相应的链接并单击它后,您可以找到一个窗口,如下所示 :
接下来,设置 windows中的环境路径,如下面的屏幕截图所示 :
完成后,您可以使用以下命令:命令提示符,以查看 aws cli 是否已安装&减去;
aws --version
它显示了aws-cli版本的详细信息,如以下屏幕截图所示 :
适用于Linux/Mac
用于在Linux上安装Mac,你需要Python 2.6.3或更高版本的verison.然后,使用以下命令进行进一步的安装过程 :
$ 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控制台获取这些详细信息.转到右上角的帐户名称显示和减去;
现在,点击我的安全凭证,然后从左侧选择用户.添加有问题详细信息的用户.
添加用户并获取访问密钥和密钥.要查看新的访问密钥,请选择显示.您的凭据将如下所示 :
访问密钥ID : AOSAIOSFOCDD7示例
秘密访问密钥 : aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY
参考适用于AWS CLIS的命令
下表将提供可用于 aws cli 的命令参考.
aws cli命令的名称 | 命令参考 |
---|---|
创建功能 | 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< ;值> [--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] [ - dr-run | --no-dry-run] [--revision-id< value>] [ - cli-input-json< value>] [ - generate-cli-skeleton< value>] |
删除功能 | delete-function --function-name< value> [--qualifier< value>] [--cli-input-json< value>] [--generate-cli-skeleton< value>] |
现在,让我们逐一详细讨论这些命令.
create-function
这个api将创建一个新的lambda函数.代码需要以zip格式提供.如果要创建的函数已存在,则api将失败.请注意,函数名称区分大小写.
包含的命令
此处给出了可与create-function一起使用的命令列表;
create-function --function-name--runtime --role --handler [--code ] [--description ] [--timeout ] [--memory-size ] [--environment ] [--kms-key-arn ] [--tags ] [--zip-file ] [--cli-input-json ]
包含的选项
您可以使用上述函数的各种选项如下 :
- function-name(string) : 这需要函数的名称.名称可以是64位字符.
- 运行时(字符串) : 在这里,您需要指定运行时环境,即语言选择.运行时的详细信息如下所示 :
可用选项 | runtime |
---|---|
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 |
- 角色(字符串) : 这将是lambda策略的名称,即为lambda函数提供的用于访问其他服务的角色.它将根据指定的角色拥有权限.
- handler(string) : 这是lambda代码执行开始的处理程序的名称.
对于nodejs,处理程序名称是我们导出的模块名称.
对于java,它是package.classname :: handler或package.classname
对于python,handler是nameofhefile.
- 代码(结构) : AWS Lambda代码
- 描述(字符串) : AWS Lambda函数的描述
- 超时(整数) : timeout将具有lambda函数终止执行的时间.默认值为3秒.
- 内存大小(整数) : 这是给aws lambda函数的内存. AWS将根据给定的内存分配CPU和内存分配量.
- 环境(结构) : 它是一个具有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提供的值.
现在,让我们使用runtime作为nodejs创建一个简单的AWS Lambda函数,并添加一些控制台.要打印的日志.
考虑一个用于理解相同和减号的示例代码;
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 中使用 角色ARN 与创建功能.
在此观察角色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中运行命令,你可以找到如下所示的输出 :
在AWS控制台中,Lambda函数显示如下所示 :
函数的详细信息如下所示 :
配置的详细信息如下所示 :
你可以测试函数并检查输出如下所示 :
此处显示相应的日志输出 :
list-functions
此api给出了目前在AWS Lambda中创建的函数列表.
包含的命令
以下是与此API相关的命令 :
list-functions[--master-region][--function-version ][--max-items ][--cli-input-json ]
list-functions下的选项
以下是您可以在此列表中使用的各种选项 - 函数api :
- 主区域(字符串) : 可选的.需要显示函数的区域.
- function-version(string) : 可选的.这将给出函数版本.
- max-items(整数) : 可选的.这将按照指定的值给出项目.
- cli-input-json(string) : 可选的.将根据提供的json文件执行操作.
值为 list-functions 的命令如下 :
aws lambda list-functions --max-items 3
该命令显示详细信息如下 :
get-function
这个api将提供函数的详细信息以及使用create-function上传zip文件的url链接.带有拉链详细信息的网址只有10分钟有效.
包含的命令
以下是与此api相关的命令 :
get-function--function-name[--qualifier ][--cli-input-json ][--generate-cli-skeleton ]
包含的选项
- 功能名称 : AWS Lambda函数的名称.您还可以指定该函数的Amazon资源名称.
- 限定符(字符串) : 可选的.函数版本可用于获取函数的详细信息.
带有get函数值的命令是 :
aws lambda get-function --function-name awslambdausingcli
命令显示详细信息如下 :
它提供了已上传邮政编码的网址.在上面的例子中,url是 :
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%2FOdAekscRHOiX00MVAxUlI82pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvseGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1wRb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FGIlOXS88yxT%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
get-function-configuration
这将给出AWS Lambda函数的配置详细信息.
以下是与此api&minus一起使用的命令;
get-function-configuration --function-name< value> [--qualifier< value>]
以下是与
$一起使用的选项b $ b
- 函数名(字符串) : aws lambda函数的名称.您还可以指定函数的Amazon资源名称.
- 限定符(字符串) : 可选.函数版本可用于获取详细信息功能.
带有get-function值的命令是 :
aws lambda get-function-configuration --function-name awslambdausingcli
该命令显示以下详细信息 :
get-account-settings
此api提供帐户设置.
涉及的命令
您可以使用此api的命令是 :
get-account-settings [ - -cli-input-json< value>] [--generate-cli-skeleton< value>]
涉及的选项
您可以对此api&minus使用以下选项;
- cli-input-json(string) : 根据提供的json字符串执行服务.
- generate-cli-skeleton(string) : 它打印json输出而不发送API请求.
您可以使用以下命令进行get-account-settings :
aws lambda get- account-settings
执行上面给出的命令时可以看到以下输出;
update-function-configuration
此API有助于更新创建的AWS Lambda函数的配置详细信息.您可以更改内存,超时,处理程序,角色,运行时,描述等.
涉及的命令
以下是更新中涉及的命令-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&minus中涉及的选项;
- function-name : 名称aws lambda函数
- 角色(字符串) : 可选.角色的ARN需要更新.
- 处理程序(字符串) : 可选. aws lambda函数的处理程序详细信息.
- description(字符串) : 可选.函数说明.
- 超时(整数)和减号; 可选.所需的时间使aws lambda函数可以终止.
- memory-size(整数) : 可选.这是给aws lambda函数的内存. AWS将根据给定的内存分配CPU和内存分配量.
- 环境(结构) : 可选.它是一个在aws lambda函数中需要环境细节的对象.
例如:Variables = {Name1 = string,Name2 = 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 |
- cli-input-json(string) : 可选.这将对所提供的json字符串中指定的api执行操作.
- generate-cli-skeleton(string) : 可选.这将输出所有细节的JSON骨架而不执行api.输出可以用作 - 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步
然后你可以看到以下输出作为显示 :
步骤4
使用 update-function-configuration 后,AWS控制台中的显示如下 :
Update-function-code
此api将更新现有AWS Lambda函数的代码.
涉及的命令
update-function-code--function-name[--zip-file ][--s3-bucket ][--s3-key ][--s3-object-version ][--cli-input-json ][--generate-cli-skeleton ]
涉及的选项
以下是update-function-code api&minus所涉及的选项;
- 函数名(字符串) : aws lambda函数的名称
- zip-file(blob) : 可选.包含要更新代码的zip文件的路径.
- s3-bucket(字符串) : 可选. S3存储桶名称,其zip文件已上传代码.
- s3-key(字符串) : 可选. AWS s3对象密钥名称必须上传.
- s3-object-version(字符串) : 可选. AWS s3对象版本.
- cli-input-json(字符串) : 可选.这将对所提供的json字符串中指定的api执行操作.
- generate-cli-skeleton(string) : 可选.这将输出所有细节的JSON骨架而不执行api.输出可以用作--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"
相应的输出如下所示 :
AWS控制台的显示如下所示 :
相应的日志输出如下所示 :
delete-function
删除 aws cli api将删除给定的功能.
包含的命令
此处给出了相同的命令详细信息 :
delete-function--function-name[--qualifier ][--cli-input-json ][--generate-cli-skeleton ]
包含的选项
此api中包含的选项如下所示 :
- function-name(string) : 这将采用lambda函数名称或aws lambda函数的arn.
- 限定符(字符串) : 这是可选的.在这里你可以指定需要删除的aws lambda的版本.
- cli-input-json(string) : 执行基于的服务操作提供的JSON字符串. JSON字符串遵循--generate-cli-skeleton提供的格式.如果在命令行上提供了其他参数,则CLI值将覆盖JSON提供的值.
- generate-cli-skeleton(string) : 它将json骨架打印到标准输出而不发送API请求.
您可以使用以下命令为此目的使用值 :
aws lambda delete-function --function-name"lambdatestcli"
现在,观察在AWS Lambda函数列表中看不到该函数 :