小编Sum*_*ora的帖子

我们如何在AWS Lambda中使用JDBC连接池?

我们可以在AWS Lambda中使用JDBC连接池吗?AS AWS lambda函数在特定事件上被调用,因此即使在完成其中一个调用之后它的生命周期仍然存在?

amazon-web-services aws-lambda

12
推荐指数
3
解决办法
4893
查看次数

如何在另一个AWS Java Lambda函数中调用aws java lambda函数,当它们位于同一帐户,同一区域时

我有一个java aws lambda函数或处理程序作为AHandler来做一些事情,例如它已经订阅了SNS事件,它解析了SNS事件并将相关数据记录到数据库中.

我有另一个java aws lambda BHandler,这个BHandler的目标是从AHandler接收请求并向AHandler提供响应.因为BHandler的目标是提供一些json数据的响应.这将由AHandler使用.

我是否可以看到任何明确的例子,告诉我们如何做这些事情?

我看到这个例子调用lambda函数从Java类以及从Java调用lambda函数

我的问题讨论了这种情况,当一个aws java lambda函数(或处理程序)调用另一个aws java lambda函数时,两者都在同一个区域,相同的帐户,相同的vpc执行的东西,相同的权限.在那种情况下,aws java lambda函数可以直接调用(或调用)到另一个或仍然必须提供aws键,区域等东西(如上面的链接)?一个明确的例子/解释将非常有帮助.

编辑

正在调用另一个Lambda函数(BHandler)的AHandler,存在于同一个帐户上已经给出了完整的AWSLambdaFullAccess所有内容,例如

"iam:PassRole","lambda:*",

这是要调用的代码:

注意:当我使用普通java main函数调用相同的函数时,下面的代码可以工作.但它不像在lambda函数上调用(就像ALambdaHandler调用BLambdaHandler作为函数调用).即使它没有返回任何例外.它只是显示超时,它被困在:lambdaClient.invoke的代码

String awsAccessKeyId = PropertyManager.getSetting("awsAccessKeyId");
        String awsSecretAccessKey = PropertyManager.getSetting("awsSecretAccessKey");
        String regionName = PropertyManager.getSetting("regionName");
        String geoIPFunctionName = PropertyManager.getSetting("FunctionName");

        Region region;
        AWSCredentials credentials;
        AWSLambdaClient lambdaClient;

        credentials = new BasicAWSCredentials(awsAccessKeyId,
                awsSecretAccessKey);

        lambdaClient = (credentials == null) ? new AWSLambdaClient()
                : new AWSLambdaClient(credentials);
        region = Region.getRegion(Regions.fromName(regionName));
        lambdaClient.setRegion(region);


        String returnGeoIPDetails = null;

        try {


            InvokeRequest invokeRequest …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services aws-lambda

8
推荐指数
2
解决办法
1万
查看次数

AWS Lambda容器重用如何工作?

我已经通过了这个链接,(它于2014年12月发布),也提到了这个这个

AWS Lambda容器重用的工作方式与2016年5月相同,请您分享详细说明的具体链接?下面我对这个AWS Lambda容器重用问题几乎没有任何疑问.

考虑一个用例:

Lambda函数名称"processMessageLambda"在必须处理消息时接收请求,并从POST REST API接收该消息(来自AWS API Gateway,与此lambda函数连接).

现在这个'processMessageLambda'处理消息并将其存储到数据库中.

从逻辑上讲,它执行以下操作:连接到数据库,存储消息并关闭连接.(它在正常情况下工作正常.)

如果请求到达 - 例如每秒10次,并且每个lambda函数需要30秒才能执行,那么它实际上会打开许多​​数据库连接.

Q1:我们可以在这种情况下使用"连接池"(例如boneCP)吗?因为"processMessageLambda"的调用次数会像每秒一百或每秒十次?

(参考:容器重用的简单示例 - 它按照它说的方式工作,但是会发生什么,许多请求会说 - 每秒10个请求)

问题2:如果可以使用连接池,那么将如何重新使用这个aws lambda容器?

如果考虑一个案例:

让我们考虑这个Lambda函数收到的请求是每秒十个,在这种情况下 - 将创建这个lambda函数的10个不同的容器,或者将创建单个容器的lambda函数,并将与所有这10个请求一起使用?

问题3:如果将创建10个不同的lambda函数容器,那么这意味着将使用10个数据库连接,那么这些10个容器将在进一步的请求中被重新使用?

问题4:请您从开发人员的角度解释一下,在重用aws lambda容器时,它实际上是如何实现lambda容器重用工作或开发人员如何考虑它?

问题5:如果容器重用已经到位,开发人员如何维护变量状态,以便开发人员知道哪个变量可以重用?

amazon-web-services aws-lambda

8
推荐指数
1
解决办法
4322
查看次数

如何读取用Java编写的AWS Lambda函数中的文件?

我编写了一个AWS Lambda Handler,如下所示:

package com.lambda;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
import java.io.*;

public class TestDetailsHandler implements RequestStreamHandler {


    public void  handleRequest(InputStream input,OutputStream output,Context context){

        // Get Lambda Logger
        LambdaLogger logger = context.getLogger();

        // Receive the input from Inputstream throw exception if any

        File starting = new File(System.getProperty("user.dir"));
            System.out.println("Source Location" + starting);

           File cityFile = new File(starting + "City.db");
        FileInputStream fis = null;

        try {
            fis = new FileInputStream(cityFile);

            System.out.println("Total file size to read (in bytes) : "
                    + fis.available()); …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services aws-lambda

7
推荐指数
1
解决办法
1万
查看次数

基于P2P的解决方案更喜欢SIP或XMPP(Jingle)用于信令

这只是一个开始,我在P2P方面探索更多,并在可扩展性或其他任何方面寻找原因:SIP或XMPP(Jingle)用于以下用例:

P2P客户端应用程序能够在所有网络遍历方案上执行文件传输.

//对于信令(例如;连接/定位/断开对等体),XMPP(Jingle)或SIP都可用.

我可以知道使用什么和为什么可能的原因?有实际用途吗?例如; 可扩展性或任何真正对上述用例产生影响的东西

p2p xmpp sip

5
推荐指数
1
解决办法
4102
查看次数

如何在集成请求上运行Amazon API Gateway的正文映射模板?

我是AWS API网关世界的新手,我在API文档中也说过,例如这里也定义了示例

现在,在我的工作要求中,我想拥有完整的调用者的HTTP头,调用者的IP地址详细信息作为API网关收到的HTTP请求.

是的我引用了 这里定义的示例,它讨论了$ context变量,没有讨论任何示例.是的,我想传递更改的信息(通过Body Mapping Template到Lambda函数).

是的,我还提到了关于Request Body Passthrough的讨论 - 有三个选项,我选择了全部三个?[正如它一个接一个地说 - 了解他们的工作],但它的文档存在所有混乱,没有可用的例子,也没有谈论'为什么'.

在此输入图像描述

我的问题:在什么情况下它会选择特定的模板(正如我定义的'application/sumit')?我尝试使用所有方式,以便我自己定义的模板,应该被选中,但它没有发生,例如我发送邮递员的请求和添加的内容类型"application/sumit"表示内容不是json,它是我的自定义类型,它应该被选中(作为正文),然后发送到连接的Lambda函数,但它没有'按照我的预期方式工作(我逐个选择所有三个选项作为做事的默认情况).

这三个选项究竟是什么含义:

.当没有模板匹配请求Content-Type标头时(例如,如果没有Content-Type是abc/abc与任何一个不匹配,那么是什么?)给定信息:请求体将在那里传递给集成没有匹配请求Content-Type标头的模板.

.什么时候没有定义模板?(推荐)(为什么推荐它?,它背后的原因是什么,我们在哪里可以找到它的答案?)给定信息:只有在没有定义映射模板时,请求体才会被传递到集成.

.从来没有 (这意味着原始的身体直接转发到Lambda函数,但它不会发生这种情况?)给定信息:请求体永远不会传递给集成.具有与任何模板不匹配的Content-type标头的请求将被HTTP 415响应拒绝.

在此输入图像描述 在此输入图像描述

amazon-web-services aws-lambda aws-api-gateway

5
推荐指数
1
解决办法
4651
查看次数

如何根 Genymotion Android 模拟器?

我已经下载了 Genymotion Android 模拟器供个人使用。我在互联网上搜索了这个设备,论坛说通过 adb shell 它已经扎根 - “同意”。

Sumits-MacBook-Pro:sdk eSumit$ adb -s 192.168.57.102:5555 shell
root@vbox86p:/ # 
root@vbox86p:/ # whoami
root
Run Code Online (Sandbox Code Playgroud)

发现 Genymotion 配置 apk,它将有助于 root 访问,如果复选框被点击 - “始终允许 su 访问”,我也这样做了,然后它像这里一样卡住了。(见下文)

如果我自己重新启动,它显示没有root访问权限?

我可以知道我在这里缺少什么吗?

以下是图片序列:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

我还学习了各种教程,例如Youtube - how to root genymotion emulator Android 7.0 但还没有解决方案

android genymotion

5
推荐指数
1
解决办法
2万
查看次数

将 docker 映像推送到 GCR 时出错 - 推送到根级映像已禁用

我的一个工作项目的目标是构建一个 docker 镜像(已成功完成),并将该镜像推送到 GCR(Google 容器存储库)。我遵循了谷歌文档上的各种文章,但它对我不起作用。

请参考以下顺序将 docker 镜像推送到 GCR:

纽约:gcloud esmit$ docker --version Docker 版本 19.03.4,内部版本 9013bf5

纽约:gcloud esmit$ gcloud auth configure-docker gcloud 凭证帮助程序已正确注册。

Newyork:gcloud esumit$ docker push gcr.io/project-research:test-service-latest 推送指的是存储库 [gcr.io/project-research]

79e24ced7c9c:1秒后重试

9ca6d3494e40:1 秒后重试

86859b163231:2 秒后重试

77cae8ab23bf:1秒后重试

未知:禁用推送到根级映像。请参阅https://cloud.google.com/container-registry/docs/support/deprecation-notices

然而,这有效:

纽约:gcloud esmit$ gcloud 容器镜像列表 列出了 0 项。仅在 gcr.io/project-research 中列出图像。使用 --repository 列出其他存储库中的图像。

它说 :

自 2018 年 4 月 3 日起,18.03 以上的 Docker 客户端版本不再支持 gcloud docker。

要对 18.03 以上客户端版本的 Container Registry 请求进行身份验证,请使用 gcloud 作为 Docker 凭证帮助程序。为此,请运行以下命令:

gcloud auth configure-docker (我已经这样做了)

上述序列以错误结束: …

gcloud google-container-registry

4
推荐指数
1
解决办法
3179
查看次数

AWS Lambda函数如何抛出SubnetIPAddressLimitReachedException?

在我的一个项目中,AWS Lambda函数之一(通常每分钟调用一次)在其函数内调用另一个AWS Lambda函数(使用AWSLambdaClient lambdaClient;).有时lambdaClient调用lambda函数(它不常说每小时4到5次)抛出SubnetIPAddressLimitReachedException:

2016-11-24 14 <---------------------> INFO xyzHandler:395 - Lambda无法为Lambda函数设置VPC访问权限,因为一个或更多配置的子网没有可用的IP地址.(服务:AWSLambda;状态代码:502;错误代码:SubnetIPAddressLimitReachedException ;请求ID:XXXX)

在这里这里搜索,但是我没有找到任何关于这个例外的明确解释?

amazon-web-services aws-lambda

2
推荐指数
1
解决办法
1028
查看次数

如何提取特定版本的Docker Postgres Image?

我是Docker领域的新手。我做了docker pull postgres和docker pull postgres:9.5.4,在这两种情况下,它都将最新的图像拉为postgres 10.1(请参见下文)。

x86_64-pc-linux-gnu上的PostgreSQL 10.1,由gcc编译(Debian 6.3.0-18)6.3.0 20170516,64位

我只想从dockers hub拉9.gre版本的postgres镜像。

即使拉9.5.4或9.5.10也总是显示postgres 10.1 PostgreSQL 9.5.4 PostgreSQL 9.5.10

postgresql docker

2
推荐指数
1
解决办法
5969
查看次数

如何从用Java编写的AWS Lambda函数中读取S3文件?

我编写了一个AWS Lambda函数,它的目标是在调用时 - 它读取文件的内容,例如x.db,从中获取一个特定的值并返回给调用者.但是这个x.db文件不时地改变.所以我想将这个x.db文件上传到S3并从AWS Lambda函数读取它就像读取文件一样.

        File xFile = new File("S3 file in x.db");
Run Code Online (Sandbox Code Playgroud)

如何从用Java编写的AWS Lambda函数中读取这样的x.db S3文件?

java amazon-s3 amazon-web-services aws-lambda

1
推荐指数
1
解决办法
1万
查看次数

HyperLedger Fabric SDK Go显示无法将nil转换为csr.KeyRequest类型

一种基于go-lang的微服务代码需要与Fabric的链式代码连接,直到上次都运行良好,到目前为止没有问题。

但是现在在构建具有结构客户端代码与结构链代码连接的基于go的微服务时,它显示了以下问题。

../vendor/github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util

../../vendor/github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:47:8:无法将nil转换为csr.KeyRequest类型 ../../vendor/github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:132:37:无法使用req.KeyRequest(类型* csr.KeyRequest)作为getBCCSPKeyOpts的参数中的csr.KeyRequest类型

也许是一个依赖性问题,我清理了完整的供应商目录,并完成了确保--update的操作,但是它显示了同样的问题,

更多信息 :

转到1.12版

在GoPkg.Toml

[[override]] name =“ github.com/hyperledger/fabric”分支=“ master”

[[override]] name =“ github.com/hyperledger/fabric-sdk-go”分支=“ master”

我尝试了fabric-sdk-go的各种组合和不同分支,尽管它之前工作得很好,但它仍然显示相同的内容。

hyperledger-fabric hyperledger-fabric-sdk-go

1
推荐指数
1
解决办法
644
查看次数