400-638-8808
|
微信公眾號(hào)








穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無(wú)阻

協(xié)同辦公 資源管理

超大郵件 超級(jí)功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

在本章中,讓我們?cè)敿?xì)了解如何在 Java 中詳細(xì)創(chuàng)建一個(gè)簡(jiǎn)單的 AWS Lambda 函數(shù)。
在 Eclipse 中創(chuàng)建 JAR 文件
在繼續(xù)在 AWS 中創(chuàng)建 lambda 函數(shù)之前,我們需要 AWS 工具包支持 Eclipse。有關(guān)安裝的任何指導(dǎo),您可以參考本教程中的 環(huán)境設(shè)置章節(jié)。
完成安裝后,請(qǐng)按照此處給出的步驟操作-
步驟 1
打開(kāi) Eclipse IDE 并使用 AWS Lambda Java 項(xiàng)目創(chuàng)建一個(gè)新項(xiàng)目。觀察下面給出的屏幕截圖以更好地理解-
步驟 2
一旦您選擇 下一步,它將重定向到如下所示的屏幕-

步驟 3
現(xiàn)在,為輸入類型 自定義創(chuàng)建了一個(gè)默認(rèn)代碼。單擊 Finish 按鈕后,項(xiàng)目將被創(chuàng)建,如下所示-

步驟 4
現(xiàn)在,右鍵單擊您的項(xiàng)目并將其導(dǎo)出。從 導(dǎo)出向?qū)е羞x擇 Java/JAR文件,然后點(diǎn)擊 下一步。
步驟 5
現(xiàn)在,如果您單擊 下一步,系統(tǒng)將提示您將文件保存在目標(biāo)文件夾中,單擊下一步時(shí)將詢問(wèn)該文件夾。
文件保存后,返回 AWS 控制臺(tái)并為 Java 創(chuàng)建 AWS Lambda 函數(shù)。

步驟 6
現(xiàn)在,上傳我們使用 Upload 按鈕創(chuàng)建的 .jar 文件,如下面的屏幕截圖所示-

Java 處理程序詳細(xì)信息
Handler 是 包名和 類名。查看以下示例以詳細(xì)了解處理程序-
示例
package com.amazonaws.lambda.demo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler
從上面的代碼可以看出,處理程序?qū)⑹?nbsp;com.amazonaws.lambda.demo.LambdaFunctionHandler
現(xiàn)在,讓我們測(cè)試更改并查看輸出-


Java 中的上下文對(duì)象
與 AWS Lambda 執(zhí)行的交互是使用上下文完成的。它提供了以下在 Java 中使用的方法-
|
Sr.No |
上下文方法和描述 |
|
1 |
getMemoryLimitInMB() 這將給出您在創(chuàng)建 lambda 函數(shù)時(shí)指定的內(nèi)存限制。 |
|
2 |
getFunctionName() 這將給出 lambda 函數(shù)的名稱。 |
|
3 |
getFunctionVersion() 這將給出正在運(yùn)行的 lambda 函數(shù)的版本。 |
|
4 |
getInvokedFunctionArn() 這將給出用于調(diào)用函數(shù)的 ARN。 |
|
5 |
getAwsRequestId() 這將給出 aws 請(qǐng)求 ID。這個(gè) id 是為 lambda 函數(shù)創(chuàng)建的,它是唯一的。如果您遇到任何問(wèn)題,該 ID 可以與 aws 支持一起使用。 |
|
6 |
getLogGroupName() 這將給出與創(chuàng)建的 aws lambda 函數(shù)鏈接的 aws cloudwatch 組名稱。如果 iam 用戶沒(méi)有 cloudwatch 日志記錄的權(quán)限,它將為 null。 |
|
7 |
getClientContext() 當(dāng)與 aws mobile sdk 一起使用時(shí),這將提供有關(guān)應(yīng)用程序和設(shè)備的詳細(xì)信息。它將提供版本名稱和代碼、客戶端 ID、標(biāo)題、應(yīng)用程序包名稱等詳細(xì)信息。它可以為空。 |
|
8 |
getIdentity() 當(dāng)與 aws mobile sdk 一起使用時(shí),這將提供有關(guān) amazon cognito 身份的詳細(xì)信息。它可以為空。 |
|
9 |
getRemainingTimeInMillis() 這將給出在指定超時(shí)后函數(shù)終止時(shí)的剩余執(zhí)行時(shí)間(以毫秒為單位)。 |
|
10 |
getLogger() 這將提供與上下文對(duì)象鏈接的 lambda 記錄器。 |
現(xiàn)在,讓我們更新上面給出的代碼并觀察上面列出的一些方法的輸出。觀察下面給出的示例代碼以更好地理解-
package com.amazonaws.lambda.demo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler<Object, String> {
@Override
public String handleRequest(Object input, Context context) {
context.getLogger().log("Input: " + input);
System.out.println("AWS Lambda function name: " + context.getFunctionName());
System.out.println("Memory Allocated: " + context.getMemoryLimitInMB());
System.out.println("Time remaining in milliseconds: " + context.getRemainingTimeInMillis());
System.out.println("Cloudwatch group name " + context.getLogGroupName());
System.out.println("AWS Lambda Request Id " + context.getAwsRequestId());
// TODO: implement your handler
return "Hello from Lambda!";
}
}
一旦你運(yùn)行上面給出的代碼,你可以找到下面給出的輸出-

上下文日志
當(dāng)您查看日志輸出時(shí),您可以觀察到以下輸出-

請(qǐng)注意,我們使用以下命令在 Java 中打印日志-
System.out.println (“log message”)
在 CloudWatch 中也有同樣的功能。為此,請(qǐng)轉(zhuǎn)到 AWS 服務(wù),選擇 CloudWatchservices 并單擊 日志。
現(xiàn)在,如果您選擇 Lambda 函數(shù),它將按日期顯示日志,如下所示-

Java 登錄
您還可以在 Java 中使用 Lambdalogger 來(lái)記錄數(shù)據(jù)。觀察以下顯示相同的示例-
示例
package com.amazonaws.lambda.demo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
public class LambdaFunctionHandler implements RequestHandler<Object, String> {
@Override
public String handleRequest(Object input, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("Input: " + input);
logger.log("AWS Lambda function name: " + context.getFunctionName()+"\n");
logger.log("Memory Allocated: " + context.getMemoryLimitInMB()+"\n");
logger.log("Time remaining in milliseconds: " + context.getRemainingTimeInMillis()+"\n");
logger.log("Cloudwatch group name " + context.getLogGroupName()+"\n");
logger.log("AWS Lambda Request Id " + context.getAwsRequestId()+"\n");
// TODO: implement your handler
return "Hello from Lambda!";
}
}
上面顯示的代碼將為您提供以下輸出-


Java 中 Lambda 函數(shù)的錯(cuò)誤處理
本節(jié)將解釋如何在 Java 中為 Lambda 函數(shù)處理錯(cuò)誤。觀察以下顯示相同的代碼-
package com.amazonaws.lambda.errorhandling;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler<Object, String> {
@Override
public String handleRequest(Object input, Context context) {
throw new RuntimeException("Error from aws lambda");
}
}
請(qǐng)注意,錯(cuò)誤詳細(xì)信息以帶有 errorMessage Error from AWS Lambda 的 json 格式顯示。此外, ErrorType 和 stackTrace 提供了有關(guān)錯(cuò)誤的更多詳細(xì)信息。
上面給出的代碼的輸出和相應(yīng)的日志輸出將如下面的截圖所示-


作為AWS核心代理商,選擇天.下.數(shù).據(jù)的優(yōu)勢(shì)
1、專屬客服協(xié)助注冊(cè)AWS,或提供注冊(cè)好的賬號(hào)直接使用
2、支持收U等多幣種支付代付,無(wú)額外服務(wù)費(fèi)用
3、AWS多種產(chǎn)品類型,更高產(chǎn)品租賃權(quán)限
4、針對(duì)大客戶,AWS專屬折扣優(yōu)惠
5、7x24小時(shí)專屬客服,在線解答各種疑問(wèn)
AWS亞馬遜云代理商哪家好?推薦找天 下 數(shù) 據(jù),可享受高額折扣、高額返現(xiàn)優(yōu)惠,詳詢電話40 0-63 8-88 08 官網(wǎng):http://m.51huadong.com/2023/aws.asp
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國(guó)服務(wù)器 韓國(guó)服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺(tái)灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國(guó)云主機(jī) 韓國(guó)云主機(jī) 新加坡云主機(jī) 臺(tái)灣云主機(jī) 日本云主機(jī) 德國(guó)云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無(wú)限防御 SSL證書 高防CDN套餐 全球節(jié)點(diǎn)定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊(duì)建設(shè) 加入天下數(shù)據(jù) 媒體報(bào)道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號(hào)
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠(chéng)聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊(cè) 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國(guó)服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證》 ISP證:粵ICP備07026347號(hào)
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營(yíng))聯(lián)合版權(quán)
深圳總部:中國(guó).深圳市南山區(qū)深圳國(guó)際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號(hào)建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊(cè)業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品