Aj1*_*Aj1 1 amazon-s3 amazon-ec2 amazon-web-services angularjs aws-lambda
我有一个网站(静态坐在s3),内容从s3提供.我打算写一个休息api(节点或对建议开放).当前端进行角度$ http调用时,例如,如果我的网站名为example.com,那么调用将是类似相对url(/ Update)的解决方案.
我不确定,我应该使用什么类型的aws服务来部署我的后端代码.
更新
我正在使用Codestar,使用Express Web服务.这是我的template.yml.和路线.代码星构建很好,但部署失败.
template.yml
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar
Parameters:
ProjectId:
Type: String
Description: AWS CodeStar projectID used to associate new resources to team members
Resources:
HelloWorld:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /
Method: get
PostEvent:
Type: Api
Properties:
Path: /
Method: post
GetItemsBylId:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /api/getItemsBylId/:id
Method: get
Run Code Online (Sandbox Code Playgroud)
这是我的app.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send({
"Output": "Hello World!"
});
});
app.get('/api/GetItemsBylId/:id', function (req, res) {
res.send({
"Output": "I am up!"
});
});
Run Code Online (Sandbox Code Playgroud)
以下是GetItemsBylId部署的错误
Failed to set tags on AWS::Lambda::Function. IAM permissions lambda:ListTags, lambda:TagResource and lambda:UntagResource are required to tag AWS::Lambda::Function resources and to propagate stack level tags.
Run Code Online (Sandbox Code Playgroud)
我很确定这是因为id param.
更新
使用查询参数解决了标签问题.而不是使用,resouce:id,我现在正在使用?id ="".
这里有几件事需要考虑:
Lambda通常被认为是无服务器解决方案.您只需编写代码,而不是担心底层基础架构,底层AWS托管资源就会为您运行.API网关与Lambda集成,允许您将各种REST样式URL映射到Lambda函数.
好处
缺点
利用EC2实例将它们刻入容器的有趣方法.特别好,如果你习惯于处理码头图像.
好处
缺点
我建议考虑更多以IO为中心的工作负载.有许多可用选项,包括预配置IOPS,实例存储,高IO实例类型等.
好处
缺点
这是EC2方面的一个很好的界面.如果您只想运行代码并且宁愿做出大部分关于在何处/如何运行它的决策,那么这将非常有用.
好处
缺点
现在关于您可能需要存储的数据库:
NoSQL数据存储.如果您可以将数据存储为键值对而没有相互之间的大量相关数据,那么这个价格很合理.免费等级限制也很好.
好处
缺点
就像这个名字说一个相当简单的DB一样.这适用于处理相当小的工作负载或临时存储数据的位置.
好处
缺点
您对大多数人都熟悉的数据库的期望.包括MySQL,Aurora(亚马逊的定制MySQL),PostgreSQL,Oracle,SQL服务器.
好处
缺点
我想我已经触及了基本的优点和缺点,但可能会遗漏一些评论部分会在此之后提醒我的项目.我还强烈建议查看所有链接的网站,以便更好地了解服务以及满足您的需求,因为我可以直接回答这个问题.