文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Lambda using AWS SDKs 的程式碼範例
下列程式碼範例示範如何使用 AWS 軟體開發套件 AWS Lambda (SDK)。
基本概念是程式碼範例,示範如何在服務內執行基本操作。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在相關案例中查看內容中的動作。
案例是程式碼範例,示範如何透過呼叫服務內的多個函數或與其他函數結合來完成特定任務 AWS 服務。
其他 資源
Lambda 開發人員指南 – 有關 Lambda 的詳細資訊。
Lambda API 參考 – 所有可用 Lambda 動作的詳細資訊。
AWS 開發人員中心
– 您可以依類別或全文搜尋篩選的程式碼範例。 AWS SDK範例
– 使用偏好語言的完整程式碼的 GitHub 儲存庫。包含設定和執行程式碼的指示。
開始使用
下列程式碼範例示範如何開始使用 Lambda。
- .NET
-
- AWS SDK for .NET
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 namespace LambdaActions; using Amazon.Lambda; public class HelloLambda { static async Task Main(string[] args) { var lambdaClient = new AmazonLambdaClient(); Console.WriteLine("Hello AWS Lambda"); Console.WriteLine("Let's get started with AWS Lambda by listing your existing Lambda functions:"); var response = await lambdaClient.ListFunctionsAsync(); response.Functions.ForEach(function => { Console.WriteLine($"{function.FunctionName}\t{function.Description}"); }); } }
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for .NET 參考中的 API。
-
- C++
-
- C++ 的 SDK
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 CMakeLists.txt CMake 檔案的程式碼。
# Set the minimum required version of CMake for this project. cmake_minimum_required(VERSION 3.13) # Set the AWS service components used by this project. set(SERVICE_COMPONENTS lambda) # Set this project's name. project("hello_lambda") # Set the C++ standard to use to build this target. # At least C++ 11 is required for the AWS SDK for C++. set(CMAKE_CXX_STANDARD 11) # Use the MSVC variable to determine if this is a Windows build. set(WINDOWS_BUILD ${MSVC}) if (WINDOWS_BUILD) # Set the location where CMake can find the installed libraries for the AWS SDK. string(REPLACE ";" "/aws-cpp-sdk-all;" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}/aws-cpp-sdk-all") list(APPEND CMAKE_PREFIX_PATH ${SYSTEM_MODULE_PATH}) endif () # Find the AWS SDK for C++ package. find_package(AWSSDK REQUIRED COMPONENTS ${SERVICE_COMPONENTS}) if (WINDOWS_BUILD AND AWSSDK_INSTALL_AS_SHARED_LIBS) # Copy relevant AWS SDK for C++ libraries into the current binary directory for running and debugging. # set(BIN_SUB_DIR "/Debug") # if you are building from the command line you may need to uncomment this # and set the proper subdirectory to the executables' location. AWSSDK_CPY_DYN_LIBS(SERVICE_COMPONENTS "" ${CMAKE_CURRENT_BINARY_DIR}${BIN_SUB_DIR}) endif () add_executable(${PROJECT_NAME} hello_lambda.cpp) target_link_libraries(${PROJECT_NAME} ${AWSSDK_LINK_LIBRARIES})
hello_lambda.cpp 來源檔案的程式碼。
#include <aws/core/Aws.h> #include <aws/lambda/LambdaClient.h> #include <aws/lambda/model/ListFunctionsRequest.h> #include <iostream> /* * A "Hello Lambda" starter application which initializes an AWS Lambda (Lambda) client and lists the Lambda functions. * * main function * * Usage: 'hello_lambda' * */ int main(int argc, char **argv) { Aws::SDKOptions options; // Optionally change the log level for debugging. // options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug; Aws::InitAPI(options); // Should only be called once. int result = 0; { Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; Aws::Lambda::LambdaClient lambdaClient(clientConfig); std::vector<Aws::String> functions; Aws::String marker; // Used for pagination. do { Aws::Lambda::Model::ListFunctionsRequest request; if (!marker.empty()) { request.SetMarker(marker); } Aws::Lambda::Model::ListFunctionsOutcome outcome = lambdaClient.ListFunctions( request); if (outcome.IsSuccess()) { const Aws::Lambda::Model::ListFunctionsResult &listFunctionsResult = outcome.GetResult(); std::cout << listFunctionsResult.GetFunctions().size() << " lambda functions were retrieved." << std::endl; for (const Aws::Lambda::Model::FunctionConfiguration &functionConfiguration: listFunctionsResult.GetFunctions()) { functions.push_back(functionConfiguration.GetFunctionName()); std::cout << functions.size() << " " << functionConfiguration.GetDescription() << std::endl; std::cout << " " << Aws::Lambda::Model::RuntimeMapper::GetNameForRuntime( functionConfiguration.GetRuntime()) << ": " << functionConfiguration.GetHandler() << std::endl; } marker = listFunctionsResult.GetNextMarker(); } else { std::cerr << "Error with Lambda::ListFunctions. " << outcome.GetError().GetMessage() << std::endl; result = 1; break; } } while (!marker.empty()); } Aws::ShutdownAPI(options); // Should only be called once. return result; }
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for C++ 參考中的 API。
-
- Go
-
- SDK for Go V2
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 package main import ( "context" "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/lambda" ) // main uses the AWS SDK for Go (v2) to create an AWS Lambda client and list up to 10 // functions in your account. // This example uses the default settings specified in your shared credentials // and config files. func main() { ctx := context.Background() sdkConfig, err := config.LoadDefaultConfig(ctx) if err != nil { fmt.Println("Couldn't load default configuration. Have you set up your AWS account?") fmt.Println(err) return } lambdaClient := lambda.NewFromConfig(sdkConfig) maxItems := 10 fmt.Printf("Let's list up to %v functions for your account.\n", maxItems) result, err := lambdaClient.ListFunctions(ctx, &lambda.ListFunctionsInput{ MaxItems: aws.Int32(int32(maxItems)), }) if err != nil { fmt.Printf("Couldn't list functions for your account. Here's why: %v\n", err) return } if len(result.Functions) == 0 { fmt.Println("You don't have any functions!") } else { for _, function := range result.Functions { fmt.Printf("\t%v\n", *function.FunctionName) } } }
-
如需 API 詳細資訊,請參閱 ListFunctions
AWS SDK for Go 參考中的 API。
-
- Java
-
- Java 2.x 的 SDK
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 /** * Lists the AWS Lambda functions associated with the current AWS account. * * @param awsLambda an instance of the {@link LambdaClient} class, which is used to interact with the AWS Lambda service * * @throws LambdaException if an error occurs while interacting with the AWS Lambda service */ public static void listFunctions(LambdaClient awsLambda) { try { ListFunctionsResponse functionResult = awsLambda.listFunctions(); List<FunctionConfiguration> list = functionResult.functions(); for (FunctionConfiguration config : list) { System.out.println("The function name is " + config.functionName()); } } catch (LambdaException e) { System.err.println(e.getMessage()); System.exit(1); } }
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for Java 2.x 參考中的 API。
-
- JavaScript
-
- SDK for JavaScript (v3)
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 import { LambdaClient, paginateListFunctions } from "@aws-sdk/client-lambda"; const client = new LambdaClient({}); export const helloLambda = async () => { const paginator = paginateListFunctions({ client }, {}); const functions = []; for await (const page of paginator) { const funcNames = page.Functions.map((f) => f.FunctionName); functions.push(...funcNames); } console.log("Functions:"); console.log(functions.join("\n")); return functions; };
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for JavaScript 參考中的 API。
-
- Python
-
- SDK for Python (Boto3)
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 import boto3 def main(): """ List the Lambda functions in your AWS account. """ # Create the Lambda client lambda_client = boto3.client("lambda") # Use the paginator to list the functions paginator = lambda_client.get_paginator("list_functions") response_iterator = paginator.paginate() print("Here are the Lambda functions in your account:") for page in response_iterator: for function in page["Functions"]: print(f" {function['FunctionName']}") if __name__ == "__main__": main()
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for Python (Boto3) Word 參考中的 API。
-
- Ruby
-
- Ruby 的 SDK
-
注意
還有更多 on GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 require 'aws-sdk-lambda' # Creates an AWS Lambda client using the default credentials and configuration def lambda_client Aws::Lambda::Client.new end # Lists the Lambda functions in your AWS account, paginating the results if necessary def list_lambda_functions lambda = lambda_client # Use a pagination iterator to list all functions functions = [] lambda.list_functions.each_page do |page| functions.concat(page.functions) end # Print the name and ARN of each function functions.each do |function| puts "Function name: #{function.function_name}" puts "Function ARN: #{function.function_arn}" puts end puts "Total functions: #{functions.count}" end list_lambda_functions if __FILE__ == $PROGRAM_NAME
-
如需 API 詳細資訊,請參閱 ListFunctions AWS SDK for Ruby 參考中的 API。
-
程式碼範例
- 基本概念
- Hello Lambda
- 了解基本概念
- 動作
- CreateAlias
- CreateFunction
- DeleteAlias
- DeleteFunction
- DeleteFunctionConcurrency
- DeleteProvisionedConcurrencyConfig
- GetAccountSettings
- GetAlias
- GetFunction
- GetFunctionConcurrency
- GetFunctionConfiguration
- GetPolicy
- GetProvisionedConcurrencyConfig
- Invoke
- ListFunctions
- ListProvisionedConcurrencyConfigs
- ListTags
- ListVersionsByFunction
- PublishVersion
- PutFunctionConcurrency
- PutProvisionedConcurrencyConfig
- RemovePermission
- TagResource
- UntagResource
- UpdateAlias
- UpdateFunctionCode
- UpdateFunctionConfiguration
- 案例
- 使用 Lambda 函數自動確認已知使用者
- 使用 Lambda 函數自動遷移已知使用者
- 建立 REST API追蹤 COVID-19 資料
- 建立貸款程式庫 REST API
- 建立傳訊應用程式
- 建立無伺服器應用程式來管理相片
- 建立 websocket 聊天應用程式
- 建立應用程式以分析客戶意見回饋
- 從瀏覽器調用 Lambda 函數
- 使用 S3 Object Lambda 轉換資料
- 使用 API Gateway 叫用 Lambda 函數
- 使用 Step Functions 呼叫 Lambda 函數
- 使用排程事件來呼叫 Lambda 函數
- 在 Amazon Cognito 使用者身分驗證後,使用 Lambda 函數寫入自訂活動資料
- 無伺服器範例
- 連線至 Lambda 函數中的 Amazon RDS 資料庫
- 使用 Kinesis 觸發條件調用 Lambda 函數
- 從 DynamoDB 觸發程序叫用 Lambda 函數
- 從 Amazon DocumentDB 觸發程序叫用 Lambda 函數
- 從 Amazon MSK 觸發程序叫用 Lambda 函數
- 使用 Amazon S3 觸發條件調用 Lambda 函數
- 從 Amazon SNS 觸發程序叫用 Lambda 函數
- 從 Amazon SQS 觸發程序叫用 Lambda 函數
- 使用 Kinesis 觸發條件報告 Lambda 函數的批次項目失敗
- 使用 DynamoDB 觸發程序報告 Lambda 函數的批次項目失敗
- 使用 Amazon SQS 觸發程序報告 Lambda 函數的批次項目失敗