日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用Lambda在AWS云上使用Java

發布時間:2023/12/3 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Lambda在AWS云上使用Java 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如今,Amazon Web Services越來越受歡迎。 Java是AWS的一等公民,它很容易上手。
部署應用程序有些不同,但是仍然很容易和方便。

AWS Lambda是一種計算服務,您可以在其中將代碼上傳到AWS Lambda,并且該服務可以使用AWS基礎架構代表您運行代碼。 在您上傳代碼并創建我們稱為Lambda函數的功能之后,AWS Lambda會負責調配和管理用于運行代碼的服務器。

實際上,將lambda視為運行需要最多五分鐘才能完成的任務。 如果簡單的操作或工作不費時,并且不需要龐大的框架,則使用AWS lambda是可行的方法。 AWS lambda同樣適用于水平擴展。

最簡化的示例是創建一個lambda函數來響應請求。

我們將實現RequestHandler接口。

package com.gkatzioura.deployment.lambda;import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler;import java.util.Map; import java.util.logging.Logger;/*** Created by gkatzioura on 9/10/2016.*/ public class RequestFunctionHandler implements RequestHandler<Map<String,String>,String> {private static final Logger LOGGER = Logger.getLogger(RequestFunctionHandler.class.getName());public String handleRequest(Map <String,String> values, Context context) {LOGGER.info("Handling request");return "You invoked a lambda function";}}

不知何故,RequestHandler就像一個控制器。

要繼續,我們將創建一個具有所需依賴關系的jar文件,因此我們將創建一個自定義gradle任務

apply plugin: 'java'repositories {mavenCentral() }dependencies {compile ('com.amazonaws:aws-lambda-java-core:1.1.0','com.amazonaws:aws-lambda-java-events:1.1.0') }task buildZip(type: Zip) {from compileJavafrom processResourcesinto('lib') {from configurations.runtime} }build.dependsOn buildZip

那我們應該建立

gradle build

現在,我們必須將代碼上傳到我們的lambda函數。

我在Amazon上有一個s3存儲桶,僅用于lambda函數。 假設我們的存儲桶稱為lambda函數(我很確定它已經被保留)。 我們將盡可能使用aws cli 。

aws s3 cp build/distributions/JavaLambdaDeployment.zip s3://lambda-functions/JavaLambdaDeployment.zip

現在,我們不是通過手動方式創建lambda函數,而是通過創建云形成模板來做到這一點。

{"AWSTemplateFormatVersion": "2010-09-09","Resources": {"LF9MBL": {"Type": "AWS::Lambda::Function","Properties": {"Code": {"S3Bucket": "lambda-functions","S3Key" : "JavaLambdaDeployment.zip",},"FunctionName": "SimpleRequest","Handler": "com.gkatzioura.deployment.lambda.RequestFunctionHandler","MemorySize": 128,"Role":"arn:aws:iam::274402012893:role/lambda_basic_execution","Runtime":"java8"},"Metadata": {"AWS::CloudFormation::Designer": {"id": "66b2b325-f19a-4d7d-a7a9-943dd8cd4a5c"}}}} }

下一步是將我們的cloudformation模板上傳到s3存儲桶。 我個人使用一個單獨的存儲桶作為模板。 假設我們的存儲桶稱為cloudformation-templates

aws s3 cp cloudformationjavalambda.template s3://cloudformation-templates/cloudformationjavalambda.template

下一步是使用指定的模板創建我們的cloudformation堆棧

aws cloudformation create-stack --stack-name JavaLambdaStack --template-url https://s3.amazonaws.com/cloudformation-templates/cloudformationjavalambda.template

為了檢查,我們將通過亞馬遜cli調用lambda函數。

aws lambda invoke --invocation-type RequestResponse --function-name SimpleRequest --region eu-west-1 --log-type Tail --payload '{}' outputfile.txt

結果是預期的

"You invoked a lambda function"

您可以在github上找到源代碼。

翻譯自: https://www.javacodegeeks.com/2016/10/java-aws-cloud-using-lambda.html

總結

以上是生活随笔為你收集整理的使用Lambda在AWS云上使用Java的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。