使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lintcode--3(366)--斐波那契数列

题目&#xff1a;查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指&#xff1a;前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是&#xff1a;0,1,1,2,3,5,8,13,21... 程序&#xff1a; class Solution { public: /* * para…

nt6启动菜单自动修复工具_轻量级windows系统修复,清理工具——Dism++

收藏分享计划读完需要4分钟速读仅需 2 分钟Dism是一款操作简单&#xff0c;轻量级的系统维护工具。Dism 作为第三版清理工具更加深入系统底层&#xff0c;功能和清理效果都非常不错1 简介Dism 是由初雨团队采用微软内部 API 编写的一款开源免费的实用工具&#xff0c;最开始的名…

【日常小记】linux中强大且常用命令:find、grep

在linux下面工作&#xff0c;有些命令能够大大提高效率。本文就向大家介绍find、grep命令&#xff0c;他哥俩可以算是必会的linux命令&#xff0c;我几乎每天都要用到他们。本文结构如下&#xff1a; find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命…

Spring----最小化Spring配置

在Spring的配置文件中&#xff0c;我们可以使用<bean>元素定义Bean,以及使用<constructor-arg>或着<property>元素装配bean,这对于包含少量Bean的应用来说以经非常不错了&#xff0c;但是随着应用的发展&#xff0c;我们不得不编写越来越复杂的XML配置。为解…

Lintcode--2(56)--两数之和

题目&#xff1a;给一个整数数组&#xff0c;找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。注意事项你可以假设只有一组答案。样例给出 numbers [2, 7, 11…

qml如何发布程序_首创PC端小程序直播发布会,360如何与手机厂商一起共振?

文 | Toby Lu全新的线上发布会形式&#xff0c;正在搅动着手机品牌营销江湖。疫情之下&#xff0c;线上发布会的形式成为手机品牌产品亮相的最佳形式&#xff0c;与传统的联合各家媒体做直播不同&#xff0c;聚焦于一个媒体平台&#xff0c;全场景、全链路的营销模式&#xff0…

CUBA Platform 6.3的新增功能

我们很自豪地宣布新版本的CUBA平台和Studio全面上市&#xff01; 也许这是有史以来功能最丰富的平台版本之一–在各个级别都有重要的变化&#xff1a;体系结构&#xff0c;可扩展性&#xff0c;API可用性和性能。 本文介绍了该平台的主要增强功能。 发行说明中提供了完整的更…

Python字符串的编码与解码(encode与decode)

首先要搞清楚&#xff0c;字符串在Python内部的表示是unicode编码&#xff0c;因此&#xff0c;在做编码转换时&#xff0c;通常需要以unicode作为中间编码&#xff0c;即先将其他编码的字符串解码&#xff08;decode&#xff09;成unicode&#xff0c;再从unicode编码&#xf…

Linux复习笔记

常用命令&#xff1a; pwd &#xff1b;cd&#xff1b; ls&#xff1b; cp&#xff1b; mv&#xff1b; rm &#xff1b;cat&#xff1b; stat&#xff1b; 01234567---r---w-rw---xr-x-wxrwx目录&#xff1a; root: 在root下: useradd mjq 创建mjq用户 passwd mjq 创建密…

Lintcode--4(1)--A+B

题目&#xff1a;给出两个整数a和b, 求他们的和, 但不能使用 等数学运算符。 说明&#xff1a; a和b都是 32位 整数么&#xff1f;是的我可以使用位运算符么&#xff1f;当然可以 样例&#xff1a;如果 a1 并且 b2&#xff0c;返回3显然你可以直接 return a b&#xff0c;但…

1w存银行一年多少利息_100万存银行一年利息多少?能赚多少钱?

100万存银行一年利息多少&#xff0c;是否可以辞掉工作什么都不做随着经济水平的提升&#xff0c;大家手上的存款也越来越多了&#xff0c;众所周知&#xff0c;将资金存放在银行是可以赚取利息收益的&#xff0c;那么如果我们有100万的存款资金后&#xff0c;一年可以获得多少…

Notepad++背景颜色设置

经常试用notepad看代码&#xff0c;白色的背景连续看的时间长了眼睛很容变花&#xff0c;所以找了相关的设置选项&#xff0c;分享给大家 具体设置步骤如下&#xff1a; 然后如下设置 这样前景色背景色已经发生改变了哟&#xff0c;下面再修改下选中行的背景色吧&#xff0c;你…

思维水题

题目链接&#xff1a;https://codeforces.com/problemset/problem/1082/A 题目意思&#xff1a; 一本书有1到n页&#xff0c;起始页数是x&#xff0c; 一次翻页只能翻d&#xff08;向前或者向后翻&#xff0c;但是不能翻出去&#xff0c;例如n5,x1 y5,d10 &#xff09; …

常用的位运算

1、按位与 & 0 & 0 0&#xff1b;0 & 1 0&#xff1b;1 & 0 0&#xff1b;1& 1 1 同时为1则结果为1&#xff0c;否则为0&#xff1b; 如3 & 8 3 00000011 5 00000101 结果为 00000001 2、按位或 || 0|00; 0|11; 1|01; 1|11; 两…

atom feed_适用于Atom Feed的Spring MVC

atom feed如何仅使用两个类就将提要&#xff08;Atom&#xff09;添加到Web应用程序&#xff1f; Spring MVC呢&#xff1f; 这是我的假设&#xff1a; 您正在使用Spring框架 您有一些要发布在供稿中的实体&#xff0c;例如“新闻” 您的“新闻”实体具有creationDate&#…

argb可以和rgb同步吗_神光同步酷炫幻彩,安钛克光棱120 RGB风扇套装

目前这个时代&#xff0c;电脑的各种配件来说&#xff0c;走向了万物皆要有光的风格。相信发光耳机&#xff0c;发光键盘&#xff0c;发光鼠标大家也都见过不少。侧透机箱甚至全透机箱搭配各类酷炫光效在电竞游戏领域也变得越来越火。许多小伙伴在组装一款电脑时也会选择发光风…

使用GDB命令行调试器调试C/C++程序

编译自&#xff1a;http://xmodulo.com/gdb-command-line-debugger.html 作者&#xff1a; Adrien Brochard 原创&#xff1a;LCTT https://linux.cn/article-4302-1.html 译者&#xff1a; SPccman 本文地址&#xff1a;https://linux.cn/article-4302-1.html 没有调试器的…

制造业物料清单BOM、智能文档阅读、科学文献影响因子、Celebrated Italian mathematician ZepartzatT Gozinto 与 高津托图...

意大利数学家Z.高津托 意大利伟大数学家Sire Zepartzatt Gozinto的生卒年代是一个谜[1]&#xff0c;但是他发明的 “高筋图” 在 制造资源管理、物料清单&#xff08;BOM&#xff09;管理、智能阅读、科学文献影响因子计算 等方面具有重要应用。 高津托图 下图是一个制造业物料…

Dools的DMN运行时示例

正如去年宣布的那样 &#xff0c;Drools 7.0将在合规性级别3上为DMN模型提供完整的运行时支持。 在撰写本文时&#xff0c;运行时实现功能已经完成 &#xff0c;并且团队现在正在努力进行改进&#xff0c;以进行错误修复和用户友好。 不幸的是&#xff0c;对于7.0版本&#x…

走向开放、拥抱开源 —— 如何为代码选择一个合适的开源协议

目录 一. 前言 二. 开源协议选择 2.1. 何为 LICENCE&#xff1f; 2.2. 快速选择开源协议 三. 主流开源许可协议&#xff08;Open Source License&#xff09; 3.1. 常用开源协议 3.2. MIT 协议 3.3. BSD 协议 3.4. Apache Licence 协议 3.5. LGPL 协议 3.6. GPL 四…