Articles of amazon web services

S3.getSignedUrl接受多个内容types

我正在使用react-s3-uploader节点包,它接受一个signingUrl来获得一个signedUrl来存储一个对象到S3中。 目前我已经configuration了一个lambda函数(带有一个API网关端点)来生成这个signedUrl。 经过一番修改之后,我得到了它的工作,但注意到我必须在我的lambda函数中定义content-type ,如下所示: var AWS = require('aws-sdk'); const S3 = new AWS.S3() AWS.config.update({ region: 'us-west-2' }) exports.handler = function(event, context) { console.log('context, ', context) console.log('event, ', event) var params = { Bucket: 'video-bucket', Key: 'videoname.mp4', Expires: 120, ACL: 'public-read', ContentType:'video/mp4' }; S3.getSignedUrl('putObject', params, function (err, url) { console.log('The URL is', url); context.done(null, {signedUrl: url}) […]

AWS – nodejs SDK – CognitoIdentityServiceProvider.initiateAuth – CredentialsError:在configuration中缺less凭据

我试图通过使用AWS Cognito和用户池的API来validation身份validation。 我有一个通过AWS Cognito用户池创build的用户,并且正在尝试与用户一起login。 我得到的错误是CredentialsError: Missing credentials in config 。 特别是它告诉我,我需要一个IdentityPoolId 。 但我似乎无法在我的AWS控制台中find此IdentityPoolId 。 在哪里,我从我的用户池得到这个? 我看到的只是一个Pool ID和一个Pool ARN。 相关源代码: var aws = require('aws-sdk'); aws.config.update({ region: 'us-east-1', credentials: new aws.CognitoIdentityCredentials({ IdentityPoolId: '???' }) }); var authUser = function(params, callback) { if (!params || !params.Email || !params._password) { callback(new Error('Invalid parameters.')); return false; } var cognito = […]

在Node中本地使用dynamodb时,“无法从任何提供程序加载凭据”

即时build立一个dynamodb本地testing我的节点应用程序。 要设置它,我只是简单地从这里复制代码,并根据我的需要进行调整。 这是代码: var AWS = require("aws-sdk"); var config = ({ "apiVersion": "2012-08-10", "accessKeyId": "abcde", "secretAccessKey": "abcde", "region": "us-west-2", "endpoint": "http://localhost:8001", }); var dynamodb = new AWS.DynamoDB(config); var params = { TableName : "Movies", KeySchema: [ { AttributeName: "year", KeyType: "HASH"}, //Partition key { AttributeName: "title", KeyType: "RANGE" } //Sort key ], AttributeDefinitions: [ { […]

如何使用mongoosastic连接到AWS Elasticsearch

我正尝试在我的mongo db数据库上创build一个search。 我认为一个好的select是使用elasticsearch。 所以我开始了一个关于aws弹性search的集群。 因为我有这个弹性search的开发目的,我已经设置了访问策略对域的开放访问。 this.es_connection = new elasticsearch.Client("elastic search end point as given on aws es domain page"); this.es_connection.ping( { requestTimeout: 30000, hello: 'elasticsearch' }, function(error) { if (error) { console.error('elasticsearch cluster is down!' + JSON.stringify(error)); } else { logger.info('All is well in elasticsearch'); } } ); 检查我正在尝试在npm上ping我们的elascticsearch软件包。我没有任何活的连接。 节点服务器正在本地主机上运行。当我从我自己的浏览器中查看终点URL时,我收到了成功消息。 我如何用mongoosastic使用aws es服务,我一直没有遇到连接错误。 如果AWS / ES是一个restapi我怎么能用于mongoosastic。

从s3获取签名的URL以使用SSE-C解密上传的对象

我成功地使用以下代码片段来encryption和上传图片文件: var ssecKey = '12345678901234567890123456789012' var data = { Key: 'testfolder/abc.png', Body: buffer, ContentEncoding: 'base64', ContentType: 'image/png', SSECustomerAlgorithm: 'AES256', SSECustomerKey: ssecKey }; s3.putObject(data, (err) => { if (err) return console.error(err.stack) s3.getSignedUrl('getObject', { Key: 'testfolder/abc.png', Expires: 160, SSECustomerAlgorithm: 'AES256', SSECustomerKey: ssecKey }, (err, data) => { if (err) return console.error(err.stack) console.log(data); }); }); 为了得到解密的对象,我使用getsignedurl方法,控制台输出一个签名的url,但是不解密图像,因此在浏览器上显示如下错误: 我可能在这里做错了什么。

开发亚马逊Alexa的技能,我有插槽值(首字母缩略词)阅读为单词的麻烦

我正在build立一个亚马逊Alexa技能的电视指南,并有所有必要的部分工作(IE Lambda,DynamoDB和Alexa技能控制台),其中大部分频道将通过语音识别,在我的数据库中find,并返回。 这个问题的原因是我希望Alexa把我的声音input“赌注”,但每次我拼出赌注,她不认识的插槽。 如果我说“下注”,她会识别插槽,大写插槽(我的lambda函数的一部分),匹配我的数据库中的单词,并返回项目。 我宁愿拼出单词,而不只是说“赌”。 我如何确保当我拼出“赌注”时,Alexa将理解“赌注”而不是“赌注”?

AWS – Lambda无法访问ElasticTranscoder

我有一个由VPC中的以下服务组成的基础结构( 显然除了S3和代码转换器 ): EC2(networking服务器) RDS(数据库) Lambda函数与Node.js S3 弹性转码器 情况如下: 用户直接将video上传到S3存储桶 上传将触发lambda函数,该函数将在Elastic Transcoder中创build一个新作业(使用AWS开发工具包),并更新数据库中的资源行(RDS) 问题是,由于RDS不可公开访问,为了允许连接,Rambda需要与RDS在同一个VPC中。 这也会导致在lambda函数中泛因特网连接丢失,这意味着它不能访问Elastic Transcoder(因为从VPC的angular度来看,它是一个VPC的out-of- VPC)。 现在,我也遇到了与S3类似的问题,但通过在指向S3的VPC上添加一个端点来解决这个问题是相当容易的,但是,对于Elastic Transcoder(或其他任何服务,事实上)并没有这样的select。 我不想创build一个NAT网关,因为这样一个无聊的事情是非常昂贵的。 所以简单的问题是:我怎样才能解决Lambda可以同时与RDS和Elastic Transcoder进行通信? PS:lambdaangular色包含可以访问Elastic Transcoder的*Job

如何为托pipe在Amazon ECS上的服务器运行Node.js工作?

我们在Amazon ECS上有一个节点服务器,每秒钟可以达到100次左右。 由于JavaScript是单线程的,我们不想阻塞事件循环。 所以我们需要创build一个定期从数据库中提取数据并将数据加载到内存中的工作者。 这可能需要一段时间,所以我们要创build一个工作人员,所以有一个不同的事件循环。 我们怎样才能用ECS做到这一点? 我们可以只使用一个npm,或者我们必须做一些特别的事情,比如在亚马逊的控制台上设置额外的东西来build立一个单独的工作者?

使用Node Lambda通过JDBC连接到AWS Athena时出错

我的目标 我正在尝试使用AWS的JDBC驱动程序来允许运行Node 6.10的Lambda函数连接到AWS Athena并创build一个数据库。 (我也希望能够创build和查询该数据库内的表)。 我所试过的 我已经尝试了下面的代码从一个类似的问题的答案: var JDBC = require('jdbc'); var jinst = require('jdbc/lib/jinst'); if (!jinst.isJvmCreated()) { jinst.addOption("-Xrs"); jinst.setupClasspath(['./AthenaJDBC41-*.jar']); } var config = { // Required url: 'jdbc:awsathena://athena.us-east-1.amazonaws.com:443', // Optional drivername: 'com.amazonaws.athena.jdbc.AthenaDriver', minpoolsize: 10, maxpoolsize: 100, properties: { s3_staging_dir: 's3://aws-athena-query-results-*/', log_path: '/logs/athenajdbc.log', user: 'access_key', password: 'secret_key' } }; var hsqldb = new JDBC(config); hsqldb.initialize(function(err) […]

在aws elastic-beanstalk上configurationhttps进行快速configuration

我有一个在AWS EB上运行的Express应用程序,我想用SSL来保护它。 根据我的理解,我可以使用https模块在应用程序级别进行设置,也可以在EB环境级别将证书应用于负载平衡器。 我已经完成了这两个选项中的第二个,并使其工作,但我不确定最佳实践。 我应该在快速应用程序级别还是通过EB负载均衡器来做,还是应该同时做这两件事?