Tag: amazon web services

AWS Lambda和APN

我们决定使用AWS Lambda来处理需要在高峰期间快速扩展的消息(短信,电子邮件和推送),之前我们使用SQS和eb工作应用程序,但发现消息时间在高峰时段严重延迟。 苹果最近从使用p12证书变成了一个新的不过期的p8密钥系统。 这在这里解释得非常好。 问题是大多数libs / gems / packages还不支持新的Apple p8格式。 另一个问题是,AWS Lambda仅支持特定版本的节点/ python等Python 2.7.12和Node 4.3 我能find的唯一支持Apple p8格式的节点模块是node-apns 我无法得到这个工作,似乎有旧节点版本的一些问题,因此它不适用于Lambda 我能find的唯一支持p8格式的Python库就是这样 这个暂时工作,但在一个小的变化后的某个时刻停止工作,因为基本上没有例外,所以不可能debugging,因此我们不得不放弃它。 最后,我们不得不恢复使用这个 Python的lib的APNS使用旧的p12格式。 所以我的问题是 在AWS Lambda上使用新的p8格式发送Apple推送的最佳包(以任何语言)是什么? 有没有更好的方法(非AWS Lambda)发送处理stream量大量峰值的消息。 非常感谢的想法。

为什么我的AWS实例不能安装node-sass pacakage?

我使用Node创build了一个应用程序,并试图使用AWS的Elastic Beanstalk来托pipe它,但是当npm install到达node-sass时,它总是失败。 以下是日志中的错误: 5162错误node-sass@4.5.0 postinstall: node scripts/build.js 5162错误退出状态1 5163错误在node-sass@4.5.0 postinstall脚本'node scripts / build.js'失败。 5163错误请确保您安装了最新版本的node.js和npm。 5163错误如果这样做,这很可能是node-sass软件包的一个问题,5163错误与npm本身无关。 5163错误告诉作者,这在您的系统上失败:5163错误节点脚本/ build.js 5163错误您可以获得有关如何打开此项目的问题的信息:5163错误npm错误node-sass 5163错误或者,如果是没有可用的,你可以通过以下方式得到他们的信息:5163错误npm owner ls node-sass 5163错误上面可能还有其他日志logging输出。 5164 verbose exit [1,true] 这里是我的存储库: https : //github.com/Jacob-Elder/react-socket.io-messaging 这是我的awsconfiguration 我search了这个问题,发现有些人用“–unsafe-perm”标志重新安装了node-sass,但这似乎不是一个权限问题。 我是新来的AWS和编码,所以任何帮助非常感谢!

AWS lambda index.js文件中的语法错误

我不断收到来自AWS lambda的错误。 我不知道这是一个什么样的语法错误。可以请任何人解释可能发生的事情吗? Syntax error in module 'index': SyntaxError at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (/var/task/index.js:60:14) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) 这是我的第60行的Index.js文件: var DocumentDBClient = require('documentdb').DocumentClient; var HttpStatusCodes = { NOTFOUND: 404 }; var config = require('./config'); […]

使用AWS IOT和SNS的Web推送通知

我想实现一个通用的networking和移动推送通知服务。 我发现可以使用AWS IOT来实现PUSH服务,如以下链接所述: https : //serverless.zone/iot-with-the-serverless-framework-e228fae87be,但它不会使用SNS。 现在,如果我单独介绍了AWS-SNS,它的主页声称它应该用于推送通知( https://aws.amazon.com/sns/ ),但根据我的阅读,我们仍然需要GCM Android之间。 那我们为什么要用SNS? 在这种情况下,我们需要什么样的WEB? 我们应该使用AWS IOT还是SNS进行推送通知? 如何实施?

AWS EB部署Node应用程序:无法运行npm install

我正在尝试将我的节点应用程序部署到AWS。 它甚至不会让我部署应用程序(保持为Sample Application )使用eb部署。 版本 :64位Amazon Linux 2016.09 v4.0.1运行Node.js 日志说 无法运行npm install 但是我不太清楚他们要求我怎样解决这个问题。 我可以在本地安装npm: ————————————- /var/log/eb-activity.log ————————————- Failed to run npm install. Snapshot logs for more details. Traceback (most recent call last): File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 695, in <module> main() File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 677, in main node_version_manager.run_npm_install(options.app_path) File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 136, in run_npm_install self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir')) File […]

在lex响应中错误的inputTranscript

我试图testing亚马逊networking节点api sdk lexaudioinput和输出,并成功configuration它,但是当我testing它,它发送给我垃圾inputTranscript(如“是啊”,“哦,不”,“这是啊”等)作为回应。 请求参数如下, var params = { botAlias: 'Test', /* required */ botName: 'Revert', /* required */ contentType: 'audio/l16; rate=16000; channels=1', /* required */ inputStream: <Buffer 52 49 46 46 80 55 02 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 80 3e 00 00 […]

如何从lambda访问cognito联合身份的身份数据集

让我先从我想要实现的全面描述开始。 我正在使用Lambda,Cognito(联合身份validation),API网关等构build无服务器API。我正在使用aws_iam作为API网关中的授权者。 在某些端点,我需要访问例如用户的电子邮件或用户名或任何东西,所以我可以发回它的响应(也是没有提出请求的用户的数据)。 我想我正在寻找某种“pipe理”访问身份池,所以我可以检索基于cognitoIdentityId的数据。 在我的情况下,这些数据存储在Cognito的数据集中。 问题是,我如何从我的Lambda函数(node.js)访问这些数据? 这是一个很好的方法吗? 我应该使用别的东西而不是数据集? 有什么地方有个例子吗? 如有需要,我会很乐意提供更多的细节。 谢谢 编辑#1: 这里是我的lambda函数的代码: module.exports.getDataSet = (event, context, callback) => { console.log("event: " + JSON.stringify(event)); AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: IDENTITY_POOL_ID }); try { AWS.config.credentials.get(function() { var client = new AWS.CognitoSync(); var params = { DatasetName: 'userinfo', IdentityId: event.requestContext.identity.cognitoIdentityId, IdentityPoolId: IDENTITY_POOL_ID }; client.listRecords(params, function (err, data) […]

将缓冲区对象发回给Axios会导致错误

我创build了一个lambda函数在S3中添加的每个对象上执行。 我需要将每个文件转发到另一台服务器。 从S3中检索到的对象types是: { AcceptRanges: 'bytes', LastModified: 2017-05-29T18:29:47.000Z, ContentLength: 22502, ETag: '"9eff66fa38994b09e8f2072a79044734"', ContentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', Metadata: {}, Body: <Buffer 50 4b 03 04 14 00 06 00 08 00 00 00 21 00 71 d0 15 40 bc 01 00 00 de 09 00 00 13 00 08 02 5b 43 6f 6e 74 65 6e […]

当我尝试对我的服务器进行AJAX调用时,某些networking超时

我有一个在AWS S3上部署的React / Redux前端和在AWS EC2上部署的Express / Mongo后端的应用程序。 该应用程序在MOSTnetworking上正常工作。 但是,在某个networking上,只要前端尝试对后端进行任何AJAX调用,就会出现超时错误: “无法加载资源:net :: ERR_CONNECTION_TIMED_OUT”。 到目前为止,只有这个特定的互联网给了我这个错误,而且恰好是一个政府网站的networking。 我在考虑可能需要在我的AWS EC2服务器上configuration一些设置?

仅在存在新信息时扫描AWS DynamoDBlogging

我正在努力想出一些看似简单的东西。 这是一些上下文:我有一个Web应用程序,其中有6个图表由D3供电,这些数据存储在DynamoDB中的一个表中。 我正在用awssdk使用AWS和NodeJS。 当需要添加新的信息时,我需要实时更新图表。 我目前已经设置了扫描函数,每个图表每30秒运行一次,但是,当我有多个用户时,它会导致数据库被点击很多次,以至于最大化读取。 我希望这样,当数据库中的数据更新时,服务器可能会将这些数据保存到文档中,以便用户可以轮询而不是数据库本身,并且在将新信息添加到数据库时,该文档将会简单更新。 基本上,有任何方式只有在有新信息时才能扫描dynamodb。 我正在考虑使用stream,但是我完全失去了从哪里开始,如果这是最好的方法。