Tag: amazon web services

Laravel Elastic Beanstalk,无法安装运行npm?

我有我的Elastic Beanstalk与Laravel 5.4这里是我的02-node.config: commands: 01-install-node: command: "curl –silent –location https://rpm.nodesource.com/setup_8.x | s$ command: "sudo yum -y install nodejs" 和03-deploy.config container_commands: 01-laravel-deploy: command: "php artisan migrate" command: "php artisan config:clear" command: "php artisan config:cache" command: "php artisan route:clear" command: "php artisan route:cache" command: "npm install" command: "npm run prod" 在部署期间,我得到: ERROR: [Instance: i-018d9dd563f6ba0e6] Command failed on […]

dynamic网站使用AWS

我想要使​​用AWS无服务器托pipe一个dynamic网站。 我打算使用Lambda,API网关,DynamoDB和S3。 我的前端页面将驻留在S3中。 拦截器是会有一些dynamic的项目,如用户名和其他元数据将是用户特定的。 我知道到目前为止,我们能做的最好的事情就是从S3中拉出html页面。 那么我如何继续并在这些页面中包含这些variables? 我将在NodeJS中编写lambda。

从弹性beanstalk提供静态文件不起作用

我得到了一个angular色的应用程序,从本地主机工作得很好,但在豆茎它没有提供所有我的文件。 只有我的index.html和styles.css被find并提供,都在一个名为public的文件夹中。 我的构build文件是在path/build/build.js,它不会服务它,但在本地主机它会。 我目前只是从我的服务器提供的文件,而不是使用staticfiles.config,因为这是完全不工作。 文件夹结构: root: /public : index.html ,styles.css /src: modularized angular and htmls for routes . /build: build.js const express = require('express'); const path = require('path'); const fs = require('fs'); const bodyParser = require('body-parser'); const emailController = require('./controllers/emailController'); const app = express(); const port = process.env.PORT || 3000; app.use(bodyParser.json()); app.use(express.static(path.resolve(__dirname, '../public'))); app.use(express.static(path.resolve(__dirname, '../'))); […]

如何创build一个使用Express.js创build一个REST风格的API与亚马逊Api Getaway和lambda

我一直在尝试使用亚马逊Getaway和Lambda服务来构buildNode.js / Express.js api。 到目前为止,我能够使用这个框架,平台组合,我需要知道的GET Web服务公开,我应该创build一个新的文件/代码zip捆绑每个服务,我要公开使用亚马逊API Getaway? 这个问题的原因是,我创build了一个包含所有path和方法的Express.js路由: route.get('/', function(res, req){ …. }) route.get('/:id', function(res, req){ …. }) route.get('/user/', function(res, req){ …. }) 使用Amazon Api Getaway我为每个lambda函数创build一个资源和一个方法,但是当我尝试向它发送path时,我得到的结果与Express.js应用程序只有1个可用path相同。 谢谢!

性能API来处理许多请求

我正在开发一个iOS应用程序来显示来自MongoDB数据库的消息。 该应用程序有大约50,000活跃用户,所以它是相当沉重的服务器上。 我正试图重新考虑应该如何构buildAPI。 我刚刚了解了一些关于AWS API网关,Google Cloud Functions,Firebase等的内容 如果我只需要一些function来提取新闻列表,用户列表等,那么到2017年为止,构build此API的最佳方法是什么? 我一直以为我应该简单地用一些端点创build一个Node.js服务器。 但现在看来,创build单独的terminal节点的performance似乎更好,例如,AWS API网关(每个节点都指向AWS Lambda函数)。 但是什么是最可扩展的select?

如何在AWS API网关中debugging“Missing Authentication Token”?

我有一个代理AWS Lambda函数的API网关资源。 这工作得很好,通过尾随path参数( /periodicals/{tail+} ),但因为我想这些参数是可选的,我还添加了一个ANY方法到更高的资源( /periodicals ): 当从AWS控制台内testing该方法时,此工作正常。 但是,直接从我的浏览器对该资源执行请求会导致以下响应: {"message":"Missing Authentication Token"} 有了这个标题: x-amzn-errortype: MissingAuthenticationTokenException 它还有一个x-cache标头,其中的值Error from cloudfront ,所以我想这可能与CloudFront有关。 我虽然没有明确地设置CloudFront,但真的不知道如何检查? 我想我读了这个错误消息的每一个线程,但他们似乎没有适用于我: 我的方法不需要授权: 我很确定url是正确的。 当我在浏览器中访问/periodicals/whatever (即{tail+}资源)时,它工作正常,但不是/periodicals 。 CORS已启用,因为两个资源都指向处理CORS的相同Lambda函数,并且适用于子path。 HTTP动词应该不重要,因为它正在监听ANY 。 结果是相同的,无论我是否添加尾随斜线。 该API已部署。 我认为API资源对我的Lambda函数具有足够的权限,因为我可以从AWS Console成功执行它: 感谢@Lakindu,一个有趣的观察是,阶段视图中的资源下面没有列出任何方法: 还有什么我可以做的,以找出哪里出了问题?

如何从AWS访问中获取对象和操作在javascript中拒绝exception?

任何aws服务都可以抛出AcceeDeniedexception。 logging如下: somePromise.catch((err) => { console.error(`Failed to store logs into CloudWatch`, err); callback(err); }) 云观看日志显示: { "errorMessage": "Access Denied", "errorType": "AccessDenied", "stackTrace": [ "Request.extractError (/var/task/node_modules/aws-sdk/lib/services/s3.js:577:35)", "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)", "Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)", "Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14)", "Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)", "AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)", "/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10", "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)", "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:685:12)", "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:115:18)" ] } 首先在哪里是一个堆栈跟踪? 🙂 其次是有没有办法去决定什么资源和操作要求? (有几个链接的承诺,不清楚什么是错的)

HTTP请求问题内部服务器错误

我有一个HTTP响应问题给我一个状态代码:502,并出现错误消息:内部服务器错误。 我的设置是用NodeJS编写的AWS Lambda,向与其他Lambda集成的AWS API网关发出HTTPS POST请求作为其后端。 奇怪的部分是作为API后端的Lambda收到所有的POST请求,并且能够完美地执行它的function,但是它的callback响应了另一个Lambda错误。 以下是API网关端的lambdacallback const done = (err, res) => callback(err, { statusCode: err ? JSON.stringify(err.code) : '200', body: err ? JSON.stringify(err.message) : JSON.stringify(res), headers: { 'Content-Type': 'application/json', } }); 这里是其他lambda发出https POST请求的代码 const req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { process.stdout.write(d); }); res.on('end', function () […]

Amazon Linux Node.js服务器拒绝连接

直到今天上午我的节点服务器(EC2亚马逊Linux)工作正常。 我启动了npm start ./bin/www,然后从我的浏览器连接到它,并且一年多没有问题。 今天早上,它一直在说ERR连接被拒绝。 我的服务器说连接到3000. Netstat说3000是开放的,但每当我尝试连接说拒绝。 不知道发生了什么事。 这就像它没有达到节点服务器。 我没有任何其他服务器运行。 看起来问题是安全组,但端口80是开放给所有来源,我现在也增加了8080。

将Swagger Express项目迁移到AWS Serverless

我正在做一个Swagger Express项目。 (大约50个API端点) 我想将此项目迁移到使用Lambda的AWS Serverless。 从https://github.com/awslabs/aws-serverless-express/tree/master/example ,我可以看到如何从Express项目迁移到无服务器。 但Swagger Express项目似乎有所不同。 任何build议或我应该遵循的步骤表示赞赏。