使用 Lambda 示例 AWS CLI - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Lambda 示例 AWS CLI

以下代码示例向您展示了如何使用 with Lambda 来执行操作和实现常见场景。 AWS Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 add-layer-version-permission

AWS CLI

向图层版本添加权限

以下add-layer-version-permission示例向指定账户授予使用图层版本 1 的权限my-layer

aws lambda add-layer-version-permission \ --layer-name my-layer \ --statement-id xaccount \ --action lambda:GetLayerVersion \ --principal 123456789012 \ --version-number 1

输出:

{ "RevisionId": "35d87451-f796-4a3f-a618-95a3671b0a0c", "Statement": { "Sid":"xaccount", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::210987654321:root" }, "Action":"lambda:GetLayerVersion", "Resource":"arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1" } }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 add-permission

AWS CLI

向现有 Lambda 函数添加权限

以下add-permission示例授予 Amazon SNS 服务调用名为的函数的权限my-function

aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id sns \ --principal sns.amazonaws.com

输出:

{ "Statement": { "Sid":"sns", "Effect":"Allow", "Principal":{ "Service":"sns.amazonaws.com" }, "Action":"lambda:InvokeFunction", "Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function" } }

有关更多信息,请参阅 Lambda 开发人员指南中的AWS 对 Lamb AWS da 使用基于资源的策略

以下代码示例演示如何使用 create-alias

AWS CLI

为 Lambda 函数创建别名

以下 create-alias 示例会创建名为 LIVE 的别名,该别名指向 my-function Lambda 函数的版本 1。

aws lambda create-alias \ --function-name my-function \ --description "alias for live version of function" \ --function-version 1 \ --name LIVE

输出:

{ "FunctionVersion": "1", "Name": "LIVE", "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", "RevisionId": "873282ed-4cd3-4dc8-a069-d0c647e470c6", "Description": "alias for live version of function" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 create-event-source-mapping

AWS CLI

在事件源和 AWS Lambda 函数之间创建映射

以下create-event-source-mapping示例在SQS队列和 my-function Lambda 函数之间创建映射。

aws lambda create-event-source-mapping \ --function-name my-function \ --batch-size 5 \ --event-source-arn arn:aws:sqs:us-west-2:123456789012:mySQSqueue

输出:

{ "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "StateTransitionReason": "USER_INITIATED", "LastModified": 1569284520.333, "BatchSize": 5, "State": "Creating", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 L AWS am bda 事件源映射

以下代码示例演示如何使用 create-function

AWS CLI

创建 Lambda 函数

以下 create-function 示例创建一个名为 my-function 的 Lambda 函数。

aws lambda create-function \ --function-name my-function \ --runtime nodejs18.x \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --role arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-tges6bf4

my-function.zip 的内容:

This file is a deployment package that contains your function code and any dependencies.

输出:

{ "TracingConfig": { "Mode": "PassThrough" }, "CodeSha256": "PFn4S+er27qk+UuZSTKEQfNKG/XNn7QJs90mJgq6oH8=", "FunctionName": "my-function", "CodeSize": 308, "RevisionId": "873282ed-4cd3-4dc8-a069-d0c647e470c6", "MemorySize": 128, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Version": "$LATEST", "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", "Timeout": 3, "LastModified": "2023-10-14T22:26:11.234+0000", "Handler": "my-function.handler", "Runtime": "nodejs18.x", "Description": "" }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 delete-alias

AWS CLI

删除 Lambda 函数别名

以下 delete-alias 示例从 my-function Lambda 函数中删除了名为 LIVE 的别名。

aws lambda delete-alias \ --function-name my-function \ --name LIVE

此命令不生成任何输出。

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 delete-event-source-mapping

AWS CLI

删除事件源和 AWS Lambda 函数之间的映射

以下delete-event-source-mapping示例删除SQS队列和 my-function Lambda 函数之间的映射。

aws lambda delete-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

输出:

{ "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "StateTransitionReason": "USER_INITIATED", "LastModified": 1569285870.271, "BatchSize": 5, "State": "Deleting", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 L AWS am bda 事件源映射

以下代码示例演示如何使用 delete-function-concurrency

AWS CLI

从函数中删除预留的并发执行限制

以下 delete-function-concurrency 示例从 my-function 函数中删除了预留的并发执行限制。

aws lambda delete-function-concurrency \ --function-name my-function

此命令不生成任何输出。

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的为 Lambda 函数预留并发

以下代码示例演示如何使用 delete-function-event-invoke-config

AWS CLI

删除异步调用配置

以下delete-function-event-invoke-config示例删除指定函数GREEN别名的异步调用配置。

aws lambda delete-function-event-invoke-config --function-name my-function:GREEN

以下代码示例演示如何使用 delete-function

AWS CLI

示例 1:按函数名称删除 Lambda 函数

以下 delete-function 示例删除通过指定函数名称命名为 my-function 的 Lambda 函数。

aws lambda delete-function \ --function-name my-function

此命令不生成任何输出。

示例 2:按函数删除 Lambda 函数 ARN

以下delete-function示例删除my-function通过指定函数命名的 Lambda 函数。ARN

aws lambda delete-function \ --function-name arn:aws:lambda:us-west-2:123456789012:function:my-function

此命令不生成任何输出。

示例 3:通过部分函数删除 Lambda 函数 ARN

以下delete-function示例my-function通过指定函数的部分来删除命名的 Lambda 函数。ARN

aws lambda delete-function \ --function-name 123456789012:function:my-function

此命令不生成任何输出。

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 delete-layer-version

AWS CLI

删除 Lambda 层的某个版本

以下delete-layer-version示例删除名为的图层的版本 2 my-layer

aws lambda delete-layer-version \ --layer-name my-layer \ --version-number 2

此命令不生成任何输出。

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 delete-provisioned-concurrency-config

AWS CLI

删除预置并发配置

以下 delete-provisioned-concurrency-config 示例删除了指定函数 GREEN 别名的预置并发配置。

aws lambda delete-provisioned-concurrency-config \ --function-name my-function \ --qualifier GREEN

以下代码示例演示如何使用 get-account-settings

AWS CLI

在某个地区检索有关您的账户的 AWS 详细信息

以下 get-account-settings 示例展示了账户的 Lambda 限制和使用信息。

aws lambda get-account-settings

输出:

{ "AccountLimit": { "CodeSizeUnzipped": 262144000, "UnreservedConcurrentExecutions": 1000, "ConcurrentExecutions": 1000, "CodeSizeZipped": 52428800, "TotalCodeSize": 80530636800 }, "AccountUsage": { "FunctionCount": 4, "TotalCodeSize": 9426 } }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的 AWS Lambda 限制

以下代码示例演示如何使用 get-alias

AWS CLI

检索关于函数别名的详细信息

以下 get-alias 示例展示了 my-function Lambda 函数中名为 LIVE 的别名的详细信息。

aws lambda get-alias \ --function-name my-function \ --name LIVE

输出:

{ "FunctionVersion": "3", "Name": "LIVE", "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", "RevisionId": "594f41fb-b85f-4c20-95c7-6ca5f2a92c93", "Description": "alias for live version of function" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 get-event-source-mapping

AWS CLI

检索有关事件源映射的详细信息

以下get-event-source-mapping示例显示了SQS队列和 my-function Lambda 函数之间映射的详细信息。

aws lambda get-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"

输出:

{ "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "StateTransitionReason": "USER_INITIATED", "LastModified": 1569284520.333, "BatchSize": 5, "State": "Enabled", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 L AWS am bda 事件源映射

以下代码示例演示如何使用 get-function-concurrency

AWS CLI

查看函数的预留并发设置

以下 get-function-concurrency 示例检索了指定函数的预留并发设置。

aws lambda get-function-concurrency \ --function-name my-function

输出:

{ "ReservedConcurrentExecutions": 250 }

以下代码示例演示如何使用 get-function-configuration

AWS CLI

检索 Lambda 函数的版本特定设置

以下 get-function-configuration 示例展示了 my-function 函数版本 2 的设置。

aws lambda get-function-configuration \ --function-name my-function:2

输出:

{ "FunctionName": "my-function", "LastModified": "2019-09-26T20:28:40.438+0000", "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", "MemorySize": 256, "Version": "2", "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", "Timeout": 3, "Runtime": "nodejs10.x", "TracingConfig": { "Mode": "PassThrough" }, "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", "Description": "", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "CodeSize": 304, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:2", "Handler": "index.handler" }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 get-function-event-invoke-config

AWS CLI

查看异步调用配置

以下get-function-event-invoke-config示例检索指定函数BLUE别名的异步调用配置。

aws lambda get-function-event-invoke-config \ --function-name my-function:BLUE

输出:

{ "LastModified": 1577824396.653, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600, "DestinationConfig": { "OnSuccess": {}, "OnFailure": { "Destination": "arn:aws:sqs:us-east-2:123456789012:failed-invocations" } } }

以下代码示例演示如何使用 get-function

AWS CLI

检索有关函数的信息

以下 get-function 示例显示有关 my-function 函数的信息:

aws lambda get-function \ --function-name my-function

输出:

{ "Concurrency": { "ReservedConcurrentExecutions": 100 }, "Code": { "RepositoryType": "S3", "Location": "https://awslambda-us-west-2-tasks.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-function..." }, "Configuration": { "TracingConfig": { "Mode": "PassThrough" }, "Version": "$LATEST", "CodeSha256": "5tT2qgzYUHoqwR616pZ2dpkn/0J1FrzJmlKidWaaCgk=", "FunctionName": "my-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 128, "RevisionId": "28f0fb31-5c5c-43d3-8955-03e76c5c1075", "CodeSize": 304, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Handler": "index.handler", "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", "Timeout": 3, "LastModified": "2019-09-24T18:20:35.054+0000", "Runtime": "nodejs10.x", "Description": "" } }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 get-layer-version-by-arn

AWS CLI

检索有关 Lambda 层版本的信息

以下get-layer-version-by-arn示例显示有关具有指定 Amazon 资源名称 (ARN) 的层版本的信息。

aws lambda get-layer-version-by-arn \ --arn "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x:2"

输出:

{ "LayerVersionArn": "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x:2", "Description": "AWS Lambda SciPy layer for Python 3.11 (scipy-1.1.0, numpy-1.15.4) https://github.com/scipy/scipy/releases/tag/v1.1.0 https://github.com/numpy/numpy/releases/tag/v1.15.4", "CreatedDate": "2023-10-12T10:09:38.398+0000", "LayerArn": "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x", "Content": { "CodeSize": 41784542, "CodeSha256": "GGmv8ocUw4cly0T8HL0Vx/f5V4RmSCGNjDIslY4VskM=", "Location": "https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/..." }, "Version": 2, "CompatibleRuntimes": [ "python3.11" ], "LicenseInfo": "SciPy: https://github.com/scipy/scipy/blob/main/LICENSE.txt, NumPy: https://github.com/numpy/numpy/blob/main/LICENSE.txt" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 get-layer-version-policy

AWS CLI

检索 Lambda 层版本的权限策略

以下get-layer-version-policy示例显示名为的图层的版本 1 的策略信息my-layer

aws lambda get-layer-version-policy \ --layer-name my-layer \ --version-number 1

输出:

{ "Policy": { "Version":"2012-10-17", "Id":"default", "Statement": [ { "Sid":"xaccount", "Effect":"Allow", "Principal": {"AWS":"arn:aws:iam::123456789012:root"}, "Action":"lambda:GetLayerVersion", "Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1" } ] }, "RevisionId": "c68f21d2-cbf0-4026-90f6-1375ee465cd0" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 get-layer-version

AWS CLI

检索有关 Lambda 层版本的信息

以下get-layer-version示例显示名为的图层的版本 1 的信息my-layer

aws lambda get-layer-version \ --layer-name my-layer \ --version-number 1

输出:

{ "Content": { "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Description": "My Python layer", "CreatedDate": "2018-11-14T23:03:52.894+0000", "Version": 1, "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 get-policy

AWS CLI

检索函数、版本或别名的基于资源的IAM策略

以下 get-policy 示例展示了有关 my-function Lambda 函数的策略信息。

aws lambda get-policy \ --function-name my-function

输出:

{ "Policy": { "Version":"2012-10-17", "Id":"default", "Statement": [ { "Sid":"iot-events", "Effect":"Allow", "Principal": {"Service":"iotevents.amazonaws.com"}, "Action":"lambda:InvokeFunction", "Resource":"arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }, "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668" }

有关更多信息,请参阅 Lambda 开发人员指南中的AWS 对 Lamb AWS da 使用基于资源的策略

以下代码示例演示如何使用 get-provisioned-concurrency-config

AWS CLI

查看预置并发配置

以下 get-provisioned-concurrency-config 示例展示了指定函数 BLUE 别名的预置并发配置的详细信息。

aws lambda get-provisioned-concurrency-config \ --function-name my-function \ --qualifier BLUE

输出:

{ "RequestedProvisionedConcurrentExecutions": 100, "AvailableProvisionedConcurrentExecutions": 100, "AllocatedProvisionedConcurrentExecutions": 100, "Status": "READY", "LastModified": "2019-12-31T20:28:49+0000" }

以下代码示例演示如何使用 invoke

AWS CLI

示例 1:同步调用 Lambda 函数

以下 invoke 示例同步调用该 my-function 函数。如果您使用的是 AWS CLI版本 2,则该cli-binary-format选项为必填项。有关更多信息,请参阅《命令行界面用户指南》中AWS CLI支持的全局AWS 命令行选项

aws lambda invoke \ --function-name my-function \ --cli-binary-format raw-in-base64-out \ --payload '{ "name": "Bob" }' \ response.json

输出:

{ "ExecutedVersion": "$LATEST", "StatusCode": 200 }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的同步调用

示例 2:异步调用 Lambda 函数

以下 invoke 示例异步调用该 my-function 函数。如果您使用的是 AWS CLI版本 2,则该cli-binary-format选项为必填项。有关更多信息,请参阅《命令行界面用户指南》中AWS CLI支持的全局AWS 命令行选项

aws lambda invoke \ --function-name my-function \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{ "name": "Bob" }' \ response.json

输出:

{ "StatusCode": 202 }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的异步调用

  • 有关API详细信息,请参阅《AWS CLI 命令参考》中的 “用”。

以下代码示例演示如何使用 list-aliases

AWS CLI

检索 Lambda 函数的别名列表

以下list-aliases示例显示了 Lambd my-function a 函数的别名列表。

aws lambda list-aliases \ --function-name my-function

输出:

{ "Aliases": [ { "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:BETA", "RevisionId": "a410117f-ab16-494e-8035-7e204bb7933b", "FunctionVersion": "2", "Name": "BETA", "Description": "alias for beta version of function" }, { "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", "RevisionId": "21d40116-f8b1-40ba-9360-3ea284da1bb5", "FunctionVersion": "1", "Name": "LIVE", "Description": "alias for live version of function" } ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 list-event-source-mappings

AWS CLI

列出函数的事件源映射

以下list-event-source-mappings示例显示了 Lambd my-function a 函数的事件源映射列表。

aws lambda list-event-source-mappings \ --function-name my-function

输出:

{ "EventSourceMappings": [ { "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "StateTransitionReason": "USER_INITIATED", "LastModified": 1569284520.333, "BatchSize": 5, "State": "Enabled", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" } ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 L AWS am bda 事件源映射

以下代码示例演示如何使用 list-function-event-invoke-configs

AWS CLI

查看异步调用配置列表

以下list-function-event-invoke-configs示例列出了指定函数的异步调用配置。

aws lambda list-function-event-invoke-configs \ --function-name my-function

输出:

{ "FunctionEventInvokeConfigs": [ { "LastModified": 1577824406.719, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN", "MaximumRetryAttempts": 2, "MaximumEventAgeInSeconds": 1800 }, { "LastModified": 1577824396.653, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600 } ] }

以下代码示例演示如何使用 list-functions

AWS CLI

检索 Lambda 函数列表

以下 list-functions 示例显示当前用户所有函数的列表。

aws lambda list-functions

输出:

{ "Functions": [ { "TracingConfig": { "Mode": "PassThrough" }, "Version": "$LATEST", "CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=", "FunctionName": "helloworld", "MemorySize": 128, "RevisionId": "1718e831-badf-4253-9518-d0644210af7b", "CodeSize": 294, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld", "Handler": "helloworld.handler", "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", "Timeout": 3, "LastModified": "2023-09-23T18:32:33.857+0000", "Runtime": "nodejs18.x", "Description": "" }, { "TracingConfig": { "Mode": "PassThrough" }, "Version": "$LATEST", "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", "FunctionName": "my-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 256, "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668", "CodeSize": 266, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Handler": "index.handler", "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", "Timeout": 3, "LastModified": "2023-10-01T16:47:28.490+0000", "Runtime": "nodejs18.x", "Description": "" }, { "Layers": [ { "CodeSize": 41784542, "Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2" }, { "CodeSize": 4121, "Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1" } ], "TracingConfig": { "Mode": "PassThrough" }, "Version": "$LATEST", "CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=", "FunctionName": "my-python-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 128, "RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d", "CodeSize": 299, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function", "Handler": "lambda_function.lambda_handler", "Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n", "Timeout": 3, "LastModified": "2023-10-01T19:40:41.643+0000", "Runtime": "python3.11", "Description": "" } ] }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 list-layer-versions

AWS CLI

列出 AWS Lambda 层的版本

以下list-layers-versions示例显示名为的层的版本的相关信息my-layer

aws lambda list-layer-versions \ --layer-name my-layer

输出:

{ "Layers": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.10", "python3.11" ] } ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 list-layers

AWS CLI

列出与函数运行时兼容的图层

以下list-layers示例显示了与 Python 3.11 运行时兼容的图层的相关信息。

aws lambda list-layers \ --compatible-runtime python3.11

输出:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.10", "python3.11" ] } } ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 list-provisioned-concurrency-configs

AWS CLI

获取预置并发配置列表

以下 list-provisioned-concurrency-configs 示例列出了指定函数的预置并发配置。

aws lambda list-provisioned-concurrency-configs \ --function-name my-function

输出:

{ "ProvisionedConcurrencyConfigs": [ { "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN", "RequestedProvisionedConcurrentExecutions": 100, "AvailableProvisionedConcurrentExecutions": 100, "AllocatedProvisionedConcurrentExecutions": 100, "Status": "READY", "LastModified": "2019-12-31T20:29:00+0000" }, { "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", "RequestedProvisionedConcurrentExecutions": 100, "AvailableProvisionedConcurrentExecutions": 100, "AllocatedProvisionedConcurrentExecutions": 100, "Status": "READY", "LastModified": "2019-12-31T20:28:49+0000" } ] }

以下代码示例演示如何使用 list-tags

AWS CLI

检索 Lambda 函数的标签列表

以下 list-tags 示例展示了附加到 my-function Lambda 函数的标签。

aws lambda list-tags \ --resource arn:aws:lambda:us-west-2:123456789012:function:my-function

输出:

{ "Tags": { "Category": "Web Tools", "Department": "Sales" } }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的标记 Lambda 函数

以下代码示例演示如何使用 list-versions-by-function

AWS CLI

检索函数的版本列表

以下 list-versions-by-function 示例展示了 my-function Lambda 函数的版本列表。

aws lambda list-versions-by-function \ --function-name my-function

输出:

{ "Versions": [ { "TracingConfig": { "Mode": "PassThrough" }, "Version": "$LATEST", "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", "FunctionName": "my-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 256, "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668", "CodeSize": 266, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:$LATEST", "Handler": "index.handler", "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", "Timeout": 3, "LastModified": "2019-10-01T16:47:28.490+0000", "Runtime": "nodejs10.x", "Description": "" }, { "TracingConfig": { "Mode": "PassThrough" }, "Version": "1", "CodeSha256": "5tT2qgzYUHoqwR616pZ2dpkn/0J1FrzJmlKidWaaCgk=", "FunctionName": "my-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 256, "RevisionId": "949c8914-012e-4795-998c-e467121951b1", "CodeSize": 304, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:1", "Handler": "index.handler", "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", "Timeout": 3, "LastModified": "2019-09-26T20:28:40.438+0000", "Runtime": "nodejs10.x", "Description": "new version" }, { "TracingConfig": { "Mode": "PassThrough" }, "Version": "2", "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", "FunctionName": "my-function", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "MemorySize": 256, "RevisionId": "cd669f21-0f3d-4e1c-9566-948837f2e2ea", "CodeSize": 266, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:2", "Handler": "index.handler", "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", "Timeout": 3, "LastModified": "2019-10-01T16:47:28.490+0000", "Runtime": "nodejs10.x", "Description": "newer version" } ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 publish-layer-version

AWS CLI

创建 Lambda 层版本

以下publish-layer-version示例创建了一个新的 Python 库层版本。该命令检索在指定 S3 存储桶layer.zip中命名的文件的图层内容。

aws lambda publish-layer-version \ --layer-name my-layer \ --description "My Python layer" \ --license-info "MIT" \ --content S3Bucket=lambda-layers-us-west-2-123456789012,S3Key=layer.zip \ --compatible-runtimes python3.10 python3.11

输出:

{ "Content": { "Location": "https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1", "Description": "My Python layer", "CreatedDate": "2023-11-14T23:03:52.894+0000", "Version": 1, "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 publish-version

AWS CLI

发布函数的新版本

以下 publish-version 示例发布了 my-function Lambda 函数的新版本。

aws lambda publish-version \ --function-name my-function

输出:

{ "TracingConfig": { "Mode": "PassThrough" }, "CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=", "FunctionName": "my-function", "CodeSize": 294, "RevisionId": "f31d3d39-cc63-4520-97d4-43cd44c94c20", "MemorySize": 128, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:3", "Version": "2", "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", "Timeout": 3, "LastModified": "2019-09-23T18:32:33.857+0000", "Handler": "my-function.handler", "Runtime": "nodejs10.x", "Description": "" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 put-function-concurrency

AWS CLI

配置函数的预留并发限制

以下 put-function-concurrency 示例为 my-function 函数配置了 100 个预留并发执行。

aws lambda put-function-concurrency \ --function-name my-function \ --reserved-concurrent-executions 100

输出:

{ "ReservedConcurrentExecutions": 100 }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的为 Lambda 函数预留并发

以下代码示例演示如何使用 put-function-event-invoke-config

AWS CLI

为异步调用配置错误处理

以下put-function-event-invoke-config示例将最长事件持续时间设置为一小时,并禁止对指定函数进行重试。

aws lambda put-function-event-invoke-config \ --function-name my-function \ --maximum-event-age-in-seconds 3600 \ --maximum-retry-attempts 0

输出:

{ "LastModified": 1573686021.479, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600, "DestinationConfig": { "OnSuccess": {}, "OnFailure": {} } }

以下代码示例演示如何使用 put-provisioned-concurrency-config

AWS CLI

分配预置并发

以下 put-provisioned-concurrency-config 示例为指定函数的 BLUE 别名分配了 100 个预置并发。

aws lambda put-provisioned-concurrency-config \ --function-name my-function \ --qualifier BLUE \ --provisioned-concurrent-executions 100

输出:

{ "Requested ProvisionedConcurrentExecutions": 100, "Allocated ProvisionedConcurrentExecutions": 0, "Status": "IN_PROGRESS", "LastModified": "2019-11-21T19:32:12+0000" }

以下代码示例演示如何使用 remove-layer-version-permission

AWS CLI

删除图层版本权限

以下remove-layer-version-permission示例删除了账户配置图层版本的权限。

aws lambda remove-layer-version-permission \ --layer-name my-layer \ --statement-id xaccount \ --version-number 1

此命令不生成任何输出。

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 Lambda AWS 层

以下代码示例演示如何使用 remove-permission

AWS CLI

从现有 Lambda 函数中删除权限

以下 remove-permission 示例删除了调用名为 my-function 的函数的权限。

aws lambda remove-permission \ --function-name my-function \ --statement-id sns

此命令不生成任何输出。

有关更多信息,请参阅 Lambda 开发人员指南中的AWS 对 Lamb AWS da 使用基于资源的策略

以下代码示例演示如何使用 tag-resource

AWS CLI

将标签添加到现有 Lambda 函数

以下 tag-resource 示例向指定的 Lambda 函数添加了键名称为 DEPARTMENT 和值为 Department A 的标签。

aws lambda tag-resource \ --resource arn:aws:lambda:us-west-2:123456789012:function:my-function \ --tags "DEPARTMENT=Department A"

此命令不生成任何输出。

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的标记 Lambda 函数

以下代码示例演示如何使用 untag-resource

AWS CLI

从现有 Lambda 函数中删除标签

以下 untag-resource 示例从 my-function Lambda 函数中删除了键名称为 DEPARTMENT 的标签。

aws lambda untag-resource \ --resource arn:aws:lambda:us-west-2:123456789012:function:my-function \ --tag-keys DEPARTMENT

此命令不生成任何输出。

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的标记 Lambda 函数

以下代码示例演示如何使用 update-alias

AWS CLI

更新函数别名

以下 update-alias 示例会更新名为 LIVE 的别名,该别名指向 my-function Lambda 函数的版本 3。

aws lambda update-alias \ --function-name my-function \ --function-version 3 \ --name LIVE

输出:

{ "FunctionVersion": "3", "Name": "LIVE", "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", "RevisionId": "594f41fb-b85f-4c20-95c7-6ca5f2a92c93", "Description": "alias for live version of function" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的配置 Lambda AWS 函数别名

以下代码示例演示如何使用 update-event-source-mapping

AWS CLI

更新事件源和 AWS Lambda 函数之间的映射

以下update-event-source-mapping示例将指定映射中的批量大小更新为 8。

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --batch-size 8

输出:

{ "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "StateTransitionReason": "USER_INITIATED", "LastModified": 1569284520.333, "BatchSize": 8, "State": "Updating", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" }

有关更多信息,请参阅 AWS Lambda 开发人员指南中的 L AWS am bda 事件源映射

以下代码示例演示如何使用 update-function-code

AWS CLI

更新 Lambda 函数代码

以下update-function-code示例将my-function函数的未发布 ($LATEST) 版本的代码替换为指定 zip 文件的内容。

aws lambda update-function-code \ --function-name my-function \ --zip-file fileb://my-function.zip

输出:

{ "FunctionName": "my-function", "LastModified": "2019-09-26T20:28:40.438+0000", "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", "MemorySize": 256, "Version": "$LATEST", "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", "Timeout": 3, "Runtime": "nodejs10.x", "TracingConfig": { "Mode": "PassThrough" }, "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", "Description": "", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "CodeSize": 304, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Handler": "index.handler" }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 update-function-configuration

AWS CLI

修改函数的配置

以下update-function-configuration示例将函数的未发布 ($LATEST) 版本的内存大小修改为 256 MB。my-function

aws lambda update-function-configuration \ --function-name my-function \ --memory-size 256

输出:

{ "FunctionName": "my-function", "LastModified": "2019-09-26T20:28:40.438+0000", "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", "MemorySize": 256, "Version": "$LATEST", "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", "Timeout": 3, "Runtime": "nodejs10.x", "TracingConfig": { "Mode": "PassThrough" }, "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", "Description": "", "VpcConfig": { "SubnetIds": [], "VpcId": "", "SecurityGroupIds": [] }, "CodeSize": 304, "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Handler": "index.handler" }

有关更多信息,请参阅《AWS Lambda 开发人员指南》中的配置AWS Lambda 函数选项

以下代码示例演示如何使用 update-function-event-invoke-config

AWS CLI

更新异步调用配置

以下update-function-event-invoke-config示例将失败时目标添加到指定函数的现有异步调用配置中。

aws lambda update-function-event-invoke-config \ --function-name my-function \ --destination-config '{"OnFailure":{"Destination": "arn:aws:sqs:us-east-2:123456789012:destination"}}'

输出:

{ "LastModified": 1573687896.493, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600, "DestinationConfig": { "OnSuccess": {}, "OnFailure": { "Destination": "arn:aws:sqs:us-east-2:123456789012:destination" } } }