Articles of amazon web services

通过sTunnel向服务器发出请求

我有一个运行在通过sTunnelconfiguration的en EC2实例上的小应用程序。 我的sTunnel是这样configuration的 client = no cert = /etc/stunnel/stunnel.pem key = /etc/stunnel/stunnel.pem [proxy] connect = 127.0.0.1:3000 accept = private_ip:1500 我的理解是,我可以发送一个请求到private_ip:1500 ,这将切换到本地主机上运行的进程,但是当我尝试发送一些东西到IP地址时,我得到一个ETIMEDOUT错误。 以下是我提出的要求: #!/usr/bin/env node var net = require('net'); var HOST = 'private_ip'; var PORT = 1500; var client = new net.Socket(); client.connect(PORT, HOST, function() { console.log('CONNECTED TO: ' + HOST + ':' + PORT); }); […]

我如何使用node.js的aws-sdk

我正在尝试使用aws-sdk从node.js调用AWS Lambda函数(简单的Hello World)。 这是我的代码: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var AWS = require('aws-sdk'); AWS.config.accessKeyId='xxxxxxxx'; AWS.config.secretAccessKey='xxxxxxxx'; AWS.config.region = 'us-east-1'; var lambda = new AWS.Lambda(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function(req, res) { var params = { FunctionName: 'myLambdaFunction', InvocationType : 'Event', Payload: JSON.stringify( { "body" : { "key":req.body.key […]

vuejs应用程序部署到aws的cli。 实例错误以下服务未运行:应用程序

我有一个vuejs应用程序,我试图通过弹性beanstalk cli部署到aws。 我得到错误“以下服务不运行:应用程序”,我不知道这是什么意思。 当我看着我得到的日志 npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the start script 'node build/dev-server.js'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the ntertainus package, npm ERR! not with npm itself. […]

只允许服务器发布到AWS S3和不客户端应用程序 – 服务器代码和S3configuration

我正在开发一个允许用户上传图片的项目。 首先客户端将图像发送到服务器,然后服务器将其上传到amazons S3存储桶。 我只希望服务器有效的credentails有权上传到S3而不是客户端。 我的服务器正在将客户端图像上传到S3。 不过,我无法强制S3存储桶只允许使用正确的凭证从服务器上传。 如果我从服务器上删除AWS S3证书,服务器仍然能够将图像上传到S3,这不是预期的结果。 'use strict' const S3 = require('aws-sdk/clients/s3'); const uuid = require('uuid/v4'); if (process.env.NODE_ENV !== 'production') require('dotenv').config(); // Set credentials and region var s3 = new S3( { region: process.env.S3_REGION, accessKeyId: process.env.S3_ACCESSKEYID, secretAccessKey: process.env.S3_SECRETACCESSKEY }); function uploadImage(bufferImage) { return new Promise((resolve, reject) => { let key = `${uuid()}.png`; let […]

解密s3文件卸载使用unload命令与对称密钥encryption

我尝试使用AES对称密钥encryption解密由s3上传的文件,通过从redshift卸载命令上传。 如果我们使用AWS Java sdk下载aes key给s3客户端,那么它就可以正常工作。但是如果我们在下载文件后尝试手动解密它,它会给出javax.crypto.BadPaddingException: Given final block not properly padded错误。 手动解密文件的原因是我想解密使用node.js文件,据我所知,没有节点中的sdk,可以直接做到这一点。 我试过的Node.js代码: var AWS = require('aws-sdk'); var fs = require('fs'); var crypto = require('crypto'); var CryptoJS = require("crypto-js"); var algorithm = 'aes256'; var inputEncoding = 'hex'; var outputEncoding = 'utf-8'; var key = "symmetric key base 64"; //prod var data = fs.readFileSync('/tmp/files/myfile'); console.log(data); var […]

AWS Cognito Developer身份validationstream程实施服务器端

案例:我们有一个Web应用程序与自己的身份validation过程。 现在我们需要开发移动应用程序。 为了保护AWS资源免受直接访问,我们决定使用AWS Cognito。 现在我select了开发人员身份validation。 在后端服务上实现相同的策略应该是什么 – 使用NodeJs

我想在S3中存储用户的个人资料图像,并将其显示在客户端 – 将S3对象展示给移动客户端的最佳做法是什么?

所以我有一个Android聊天应用程序,用户可以创build个人资料照片。 这些照片被发送到我的节点JS后端,我上传到我的AWS S3存储桶。 我将关键字存储在我的SQL数据库下的“ user ”表中的“ image_path ”列中。 现在,当用户访问应用中的多个其他用户的聊天室时,他们应该能够看到其他用户的个人资料照片。 目前,在join聊天室时,所有用户及其“ image_path ”列表被返回给客户端。 我正在考虑如何以有效的方式向用户展示个人资料图片,而不会违反最佳安全做法。 我正在考虑的第一个解决scheme如下: 使S3桶读取公共 客户端现在可以通过“ bucket-name.s3.amazonaws.com/image_path ”请求直接访问其他用户的个人资料图片。 我对这个方法的担心是S3显示下面的警告,这让我觉得这种方法有些严重的错误: You have provided public access to this bucket. We highly recommend that you never grant any kind of public access to your S3 bucket. 我正在考虑的第二个解决scheme是: 当在聊天室中检索用户时,遍历每个用户,从每个用户的“ image_path ”创build一个预先签名的URL,在X时间后过期,然后将其返回给客户端 我看到了一些问题。 首先,如果用户在聊天室中停留的时间长于预先签名的url的到期时间,该怎么办? 实现这个刷新逻辑听起来像头痛。 而且,生成所有预先签名的URL似乎会在后端花费很长时间。 推荐哪两种方法? 还有其他的select我应该考虑吗? 更新:所以目前我正在诉诸第一个方法,它工作正常 – […]

是否有可能使用NodeJS / Angular从DynamoDB获取唯一值?

所以,我有一个重复的值表,例如: COLUMN 1 | COLUMN 2 | COLUMN 3 —————————— Pizza | Tasty | 25 Burger | Tasty | 76 Broccoli | UGH | 5 Pizza | Tasty | 3 Pizza | Tasty | 15 Burger | Tasty | 1 有没有什么办法可以select独特的值,就像我用其他的SQL一样? 我需要打印类似的东西 COLUMN | ——- Pizza Burger Broccoli

Lambda函数不会发布到SNS或更新dynamodb

我正在尝试更新dynamodb并使用以下代码从Lambda函数发送SNS通知。 即使function成功执行SNS通知也不会发生。 SNS日志也不显示任何条目。 从控制台的SNS到相同的ARN的作品。 检查更新不起作用的dynamodb。 Dynamodb和SNS发布所需的IAMangular色策略已创build。 任何指针或debugging的方式将有所帮助。 'use strict'; console.log('Loading function'); var AWS = require("aws-sdk"); var sns = new AWS.SNS(); AWS.config.update({ region: "us-east-1" }); var docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = (event, context, callback) => { context.callbackWaitsForEmptyEventLoop = false; console.log('Received event: ', JSON.stringify(event, null, 2)); console.log('Received context: ', JSON.stringify(context, null, 2)); // console.log('Cognito id: ', […]

自定义exception名称而不是UserLambdaValidationException

我使用Cognito的Pre sign-up触发器来validation用户注册。 如果某些validation失败,函数将返回一个自定义错误。 客户端只接收UserLambdaValidationException作为ErrorCode 。 有没有办法接收自定义错误名称? 当前使用样本: exports.handler = function(event, context, callback) { function AccountAlreadyExistsError(message) { this.name = "AccountAlreadyExistsError"; this.message = message; } AccountAlreadyExistsError.prototype = new Error(); const error = new AccountAlreadyExistsError("Account is in use!"); callback(error); }; 我想在我们的客户端,而不是UserLambdaValidationException AccountAlreadyExistsError 。