小编Mar*_*k B的帖子

在AWS Lambda函数中找不到模块

上传和测试我的AWS Lambda函数时遇到此错误:

{
  "errorMessage": "Cannot find module 'elasticsearch'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:276:25)",
    "Module.require (module.js:353:17)",
    "require (internal/module.js:12:17)",
    "Object.<anonymous> (/var/task/PublishElasticsearch.js:17:21)",
    "Module._compile (module.js:409:26)",
    "Object.Module._extensions..js (module.js:416:10)",
    "Module.load (module.js:343:32)",
    "Function.Module._load (module.js:300:12)",
    "Module.require (module.js:353:17)"
  ]
}
Run Code Online (Sandbox Code Playgroud)

require()作为模块的代码行:

var elasticsearch = require('elasticsearch')({
    host: config.ElasticHost
});
Run Code Online (Sandbox Code Playgroud)

该功能成功运行,唯一的问题是需要我的模块。

npm install在函数目录中运行,并且上载的ZIP的结构如下:

PublishElasticsearch.zip
    PublishElasticsearch.js
    node_modules
        elasticsearch
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我会收到这个错误?

amazon-web-services node.js aws-lambda

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

无法计算 MD5:AWS S3 存储桶

我的应用程序托管在 AWS Elastic Beanstalk - Tomcat 6 上。我的数据文件存储在 S3 存储桶中。当我在我的机器上的本地服务器上托管我的应用程序时,我能够读取和写入数据到我的 S3 存储桶(通过 SDK 使用),但是从托管在 Elastic Beanstalk 上的应用程序写入操作显示错误,即在 Elastic Beanstalk 上雄猫。我收到以下错误:

com.amazonaws.AmazonClientException:无法计算 MD5 哈希值:visitorsinfo.json(没有此类文件或目录)

我的 S3 存储桶中确实有访问者信息.json,它可以从我机器上的本地服务器成功访问,但无法从 Elastic Beanstalk 访问。

amazon-s3 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

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

AWS Lambda 公有子网 EIP 以提供互联网访问权限

在抱怨允许附加到 VPC 的 lambda 函数访问互联网的 NAT 网关成本时,我发现了一些关于在公共子网而不是私有子网中部署 lambda 并将 EIP 附加到由 Lambda 创建的 ENI 的建议。(我也有一个连接到 VPC 的 IGW)。

我关注了这篇文章:/sf/answers/5227829771/

这有效!我在公共子网中运行的 lambda 可以访问互联网。

然而,我在很多地方读到“这不应该是可能的”,或者“为 lambda 提供互联网访问的唯一方法是通过 NAT 网关/实例。” 或“如果你这样做,它就无法正确扩展”。

这只是一个坏主意吗?我的 lambda 需要访问互联网和 VPC 中的资源(例如私有子网中的 rds)

networking amazon-web-services amazon-vpc aws-lambda

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

Android语音通话记录

我想通知任何传入和传出语音呼叫的代码。我需要掌握以下所有内容:

  • 如果是来电或去电
  • 拨打的号码或来电显示的电话号码
  • 通话时长,或者如果错过了通话

如果电话号码与电话的联系人列表中的某人匹配,如果我可以获得更多的联系信息(特别是联系人姓名),那也将非常有帮助。

通话结束后,我需要我的代码来获取这些信息。也许我只是没有在寻找正确的术语,但是我很难找到如何实现此目标的任何示例。

如果有人可以提供一个实现此目的的代码示例,以及清单文件中所需的权限和任何类型的广播接收器设置,那将是非常不错的。

java android android-manifest

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

如何从WebViewClient打开新的浏览器?

我无法理解的简短问题,我想在人们点击超链接后从我的WebView启动一个新的浏览器.但是,如何设置该链接的目标以逃避WebViewClient?

这是我的代码,非常感谢任何帮助:

WebView site = (WebView)findViewById(R.id.WebView);
  site.setWebViewClient(new WebViewClient());
  site.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
  site.getSettings().setJavaScriptEnabled(true);

  button1.setOnClickListener(button1OnClickListener);
  button2.setOnClickListener(button2OnClickListener);
  button3.setOnClickListener(button3OnClickListener);
  button4.setOnClickListener(button4OnClickListener);


  final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

  progressBar = ProgressDialog.show(FlitsersActivity.this, "Thingy1", "Load...", false, true);

  site.setWebViewClient(new WebViewClient() {
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       Log.i(TAG, "Loading...");
       view.loadUrl(url);
       return true;
   }

   public void onPageFinished(WebView view, String url) {
       Log.i(TAG, "Done: " +url);
       if (progressBar.isShowing()) {
           progressBar.dismiss();
       }
   }

   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
       Log.e(TAG, "Error: " + description);
       Toast.makeText(MyActivity.this, "Oh no! " …
Run Code Online (Sandbox Code Playgroud)

android webview

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

在AWS上的单实例tomcat上通过ACM配置SSL证书

我在AWS上使用Elastic Beanstalk创建了一个单实例Web应用程序.现在我想添加ssl证书以启用https访问.

我使用ACM创建了一个ssl证书,我正在接受这个!链接将其添加到我在Elastic Beanstalk中的Web应用程序.

但我找不到任何地方.

我怎么能找到他们?

ssl https single-instance amazon-web-services amazon-elastic-beanstalk

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

在Facebook机器人聊天中存储用户答案的​​最佳方式?

使用Claudia JS构建Facebook messenger机器人并计划在AWS Lambda上托管.

我想问一下用户一系列问题.

当用户回答答案时,我需要保存以供日后使用,一旦我掌握了所需的所有信息,我会将答案传递给函数.

保存此信息的最佳方法是什么?

我正在考虑一些缓存层,例如redis,但因为存储在RAM中,当lamda服务器关闭时我会丢失它.Mongodb在连接时显然有很多开销,但至少会持久.

也许只是一个简单的mySQL服务器?

别人怎么做?我觉得有一个我想念的简单解决方案.

database chatbot node.js aws-lambda facebook-chatbot

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

AWS ApiGateway Lambda 代理访问授权方

我在 ApiGateway 中使用 Lambda 代理和 Cognito 用户池授权器。在 Lambda 函数中,我可以通过事件对象访问路径等变量。除此之外,我想访问经过身份验证的用户的声明。在它写的文档中,我应该使用:

context.authorizer.claims.property

但我授权人为空,所以我得到

Cannot read property 'claims' of undefined

有人有想法吗?

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

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

动态创建AWS IoT主题

是否可以动态创建AWS IoT主题.

例如,是否可以设置一个RULE,一旦收到消息,它就会动态或通过lambda函数创建一个主题.

或者可以通过AWS-SDK实现

任何建议都会有所帮助

amazon-web-services aws-sdk aws-lambda aws-iot

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

使用 boto3 将大字符串流式传输到 S3

我正在从 S3 下载文件,转换其中的数据,然后创建一个新文件上传到 S3。我下载的文件不到 2GB,但因为我正在增强数据,所以当我上传它时,它非常大(200GB+)。

目前你可以想象的代码是这样的:

files = list_files_in_s3()
new_file = open('new_file','w')
for file in files:
    file_data = fetch_object_from_s3(file)
    str_out = ''
    for data in file_data:
        str_out += transform_data(data)
    new_file.write(str_out)
s3.upload_file('new_file', 'bucket', 'key')
Run Code Online (Sandbox Code Playgroud)

这样做的问题是“new_file”有时太大而无法放在磁盘上。因此,我想使用 boto3upload_fileobj以流形式上传数据,这样我根本不需要磁盘上的临时文件。

有人可以帮忙提供一个例子吗?Python 方法似乎与我熟悉的 Java 完全不同。

amazon-s3 python-3.x boto3

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