使用 Lambda 示例 AWS CLI - AWS Command Line Interface

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

使用 Lambda 示例 AWS CLI

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

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

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

主題

動作

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

下列程式碼範例會示範如何使用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 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 開發人員指南中的設定AWS Lambda 函數別名

  • 如需 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 開發人員指南中的AWS Lambda 事件來源對應

下列程式碼範例會示範如何使用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範例會刪除 L my-function ambda 函數LIVE中指定的別名。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS Lambda 開發人員指南中的設定AWS Lambda 函數別名

  • 如需 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 開發人員指南中的AWS Lambda 事件來源對應

下列程式碼範例會示範如何使用delete-function-concurrency

AWS CLI

若要從函數中移除保留的並行執行限制

下列delete-function-concurrency範例會從my-function函式刪除保留的並行執行限制。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Lambda 開發人員南中的保留 Lambda 函數的AWS 並行處理

下列程式碼範例會示範如何使用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範例會刪除名為的圖層的版本 2 my-layer

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

此命令不會產生輸出。

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

下列程式碼範例會示範如何使用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 開發人員指南中的設定AWS Lambda 函數別名

  • 如需 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 開發人員指南中的AWS Lambda 事件來源對應

下列程式碼範例會示範如何使用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 圖層版本的相關資訊

下列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 開發人員指南中的AWS Lambda

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

  • 如需 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" }

如需詳細資訊,請參閱 Lambda 開發人員指南中的針對 AWS 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 函數。如果您使用的是 AWS CLI 第 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 函數。如果您使用的是 AWS CLI 第 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 開發人員指南中的設定AWS Lambda 函數別名

  • 如需 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 開發人員指南中的AWS Lambda 事件來源對應

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

  • 如需 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" } }

如需詳細資訊,請參閱 Lambda 開發人員指南中的標記AWS 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 開發人員指南中的設定AWS Lambda 函數別名

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

下列程式碼範例會示範如何使用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 開發人員指南中的設定AWS Lambda 函數別名

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

下列程式碼範例會示範如何使用put-function-concurrency

AWS CLI

若要設定函數的保留並行限制

下列put-function-concurrency範例會為函數設定 100 個保留的並行執行項目。my-function

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

輸出:

{ "ReservedConcurrentExecutions": 100 }

如需詳細資訊,請參閱 Lambda 開發人員南中的保留 Lambda 函數的AWS 並行處理

下列程式碼範例會示範如何使用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 開發人員指南中的AWS Lambda

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

AWS CLI

若要從現有 Lambda 函數移除權限

下列remove-permission範例會移除叫用名為之函數的權限my-function

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Lambda 開發人員指南中的針對 AWS 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"

此命令不會產生輸出。

如需詳細資訊,請參閱 Lambda 開發人員指南中的標記AWS 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

此命令不會產生輸出。

如需詳細資訊,請參閱 Lambda 開發人員指南中的標記AWS 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 開發人員指南中的設定AWS Lambda 函數別名

  • 如需 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 開發人員指南中的AWS Lambda 事件來源對應

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

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