使用 的 Lambda 範例 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的 Lambda 範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Lambda 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 add-layer-version-permission

AWS CLI

將許可新增至 layer 版本

下列add-layer-version-permission範例授予指定帳戶使用第 1 版 layer 的許可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 LayersAWS

下列程式碼範例示範如何使用 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" } }

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的使用資源型 Lambda 政策AWS

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 AddPermission

下列程式碼範例示範如何使用 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

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CreateAlias

下列程式碼範例示範如何使用 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 開發人員指南》中的 Lambda 事件來源映射AWS

下列程式碼範例示範如何使用 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 函數組態

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CreateFunction

下列程式碼範例示範如何使用 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

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteAlias

下列程式碼範例示範如何使用 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 開發人員指南》中的 Lambda 事件來源映射AWS

下列程式碼範例示範如何使用 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:若要依函數 ARN 刪除 Lambda 函數

下列 delete-function 範例會透過指定函數的 ARN 來刪除名為 my-function 的 Lambda 函數。

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

此命令不會產生輸出。

範例 3:若要依部分函數 ARN 刪除 Lambda 函數

下列 delete-function 範例會透過指定函數的部分 ARN 來刪除名為 my-function 的 Lambda 函數。

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

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的 AWS Lambda 函數組態

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteFunction

下列程式碼範例示範如何使用 delete-layer-version

AWS CLI

刪除 Lambda 層的版本

下列delete-layer-version範例會刪除名為 的 layer 第 2 版my-layer

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

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS Lambda 開發人員指南中的 Lambda LayersAWS

下列程式碼範例示範如何使用 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 限制

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetAccountSettings

下列程式碼範例示範如何使用 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

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetAlias

下列程式碼範例示範如何使用 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 開發人員指南》中的 Lambda 事件來源映射AWS

下列程式碼範例示範如何使用 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 函數組態

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetFunction

下列程式碼範例示範如何使用 get-layer-version-by-arn

AWS CLI

擷取 Lambda layer 版本的相關資訊

下列get-layer-version-by-arn範例顯示具有指定 Amazon Resource Name (ARN) 的 layer 版本相關資訊。

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 LayersAWS

下列程式碼範例示範如何使用 get-layer-version-policy

AWS CLI

擷取 Lambda layer 版本的許可政策

下列get-layer-version-policy範例顯示名為 之 layer 的版本 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 LayersAWS

下列程式碼範例示範如何使用 get-layer-version

AWS CLI

擷取 Lambda layer 版本的相關資訊

下列get-layer-version範例顯示名為 之 layer 第 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 LayersAWS

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetLayerVersion

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的使用資源型 Lambda 政策AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetPolicy

下列程式碼範例示範如何使用 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 函數。如果您使用的是 CLI AWS 第 2 版,則需要 cli-binary-format選項。如需詳細資訊,請參閱《AWS 命令列介面使用者指南》中的 AWS CLI 支援的全域命令列選項

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 函數。如果您使用的是 CLI AWS 第 2 版,則需要 cli-binary-format選項。如需詳細資訊,請參閱《AWS 命令列介面使用者指南》中的 AWS CLI 支援的全域命令列選項

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 命令參考》中的 Invoke

下列程式碼範例示範如何使用 list-aliases

AWS CLI

擷取 Lambda 函數的別名清單

下列list-aliases範例顯示 my-function Lambda 函數的別名清單。

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

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListAliases

下列程式碼範例示範如何使用 list-event-source-mappings

AWS CLI

列出函數的事件來源映射

下列list-event-source-mappings範例顯示 my-function Lambda 函數的事件來源映射清單。

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 開發人員指南》中的 Lambda 事件來源映射AWS

下列程式碼範例示範如何使用 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 函數組態

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListFunctions

下列程式碼範例示範如何使用 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 LayersAWS

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListLayerVersions

下列程式碼範例示範如何使用 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 LayersAWS

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListLayers

下列程式碼範例示範如何使用 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 函數

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListTags

下列程式碼範例示範如何使用 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 layer 版本

下列publish-layer-version範例會建立新的 Python 程式庫層版本。命令會擷取在指定 S3 儲存貯體layer.zip中名為 檔案的 layer 內容。

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 LayersAWS

下列程式碼範例示範如何使用 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

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PublishVersion

下列程式碼範例示範如何使用 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

刪除 layer-version 許可

下列remove-layer-version-permission範例會刪除帳戶設定 layer 版本的許可。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS Lambda 開發人員指南中的 Lambda LayersAWS

下列程式碼範例示範如何使用 remove-permission

AWS CLI

若要從現有的 Lambda 函數中移除許可

下列 remove-permission 範例會移除許可以調用名為 my-function 的函數。

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

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的使用資源型 Lambda 政策AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 RemovePermission

下列程式碼範例示範如何使用 tag-resource

AWS CLI

若要將標籤新增至現有 Lambda 函數

下列 tag-resource 範例會將索引鍵名稱為 DEPARTMENT 且值為 Department A 的標籤新增至指定的 Lambda 函數。

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

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的標記 Lambda 函數

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 TagResource

下列程式碼範例示範如何使用 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 函數

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UntagResource

下列程式碼範例示範如何使用 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

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UpdateAlias

下列程式碼範例示範如何使用 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 開發人員指南》中的 Lambda 事件來源映射AWS

下列程式碼範例示範如何使用 update-function-code

AWS CLI

若要更新 Lambda 函數的程式碼

下列 update-function-code 範例會使用指定 zip 檔案的內容替換 my-function 函數未發布 ($LATEST) 版本的程式碼。

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 函數組態

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UpdateFunctionCode

下列程式碼範例示範如何使用 update-function-configuration

AWS CLI

若要修改函數的組態

下列 update-function-configuration 範例會將 my-function 函數未發布 ($LATEST) 版本的記憶體大小修改為 256 MB。

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" } } }