小编nic*_*icq的帖子

AWS API网关+弹性Beanstalk和微服务

我将在AWS上构建微服务架构,我想请你澄清我的疑虑.

我目前的一般概念

我想使用API​​网关,它公开了在Elastic Beanstalk中运行的微服务API.我想将Elastic Beanstalk放在VPC中,而无需从Internet直接访问其实例.

在此输入图像描述

问题和怀疑:

  1. Elastic Beanstalk在应用程序创建时获得子域.API网关应使用此子域与集成类型:AWS服务,在操作配置中 - 我是对的吗?
  2. 什么代表一个微服务?Elastic Beanstalk的应用程序是一个特定的可扩展微服务?
  3. 微服务应该如何相互通信?我将使用SQS(简单队列服务)进行一些任务.但在其他情况下,当两个微服务通过API网关而不是直接相互通信时,它会更好吗 - 我是对的吗?
  4. 测试环境:我应该在测试环境(或staging环境)中使用什么结构?我考虑使用另一个Elastic Beanstalk和其他Amazon服务创建单独的VPC.
  5. 测试环境和API网关:我应该如何设置API网关?如果请求具有特定的子域,它应该允许客户端访问测试环境中的微服务,例如:test.mydomain.com/hello_world/say_hello.我不确定如何在CI/CD中使用API​​网关使其快速简单,无需手动将某些配置从测试阶段复制到生产阶段.(我不期待任何复杂的解决方案,只能提供一些关于我可以使用哪些组件,部件和概念的提示.我将自己找到更多细节).
  6. 您是否有使用Codep Deploy和/或Jenkins将应用程序部署到Elastic Beanstalk的经验?我很有兴趣以哪种方式更好:Jenkins,AWS Code Deploy或Jenkins + CodeDeploy.

amazon-web-services amazon-elastic-beanstalk microservices aws-api-gateway

14
推荐指数
2
解决办法
8947
查看次数

DynamoDB:如何存储项目列表

我想存储一些与某些父对象相关的项目列表.

父对象如下:

user_id - hash key
timestamp - range key
attributeA - String
attributeB - Number
listC - List of objects
Run Code Online (Sandbox Code Playgroud)

listC是一个对象列表(如JSON),其中每个对象可以有几个字段:

attrX - number
attrY - string
attrZ - string
Run Code Online (Sandbox Code Playgroud)

列表的大小可以变化,从几个元素到hundreads.

我应该如何存放它们?

由于DynamoDB的限制,我担心我不能将此列表保留为父对象的属性.我想将这些列表移到另一个表中.但是,我不确定我是否应该:

  1. 将每个列表的项目保存为单独的记录,
  2. 将列表的项拆分为多个单独的记录,其中每个数据库记录的项目很少.

方法(1):

-------------------------------------
| parent_id | attrX | attrY | attrZ |
-------------------------------------
|  178      |  2    | "abc" | "xyz" |
-------------------------------------
|  178      | 2.4   | "klm" | "qwe" |
------------------------------------- 
Run Code Online (Sandbox Code Playgroud)

方法(2):

------------------------------------------------------------------------  
| parent_id | Chunk |  ListC                                            |
------------------------------------------------------------------------
| …
Run Code Online (Sandbox Code Playgroud)

database amazon-web-services nosql amazon-dynamodb

12
推荐指数
1
解决办法
8231
查看次数

React Leaflet:动态添加标记

如何动态添加标记到React-Leaflet贴图?

我想在用户点击地图时添加新标记.我无法让它发挥作用.

import React, { Component } from 'react'
import { render } from 'react-dom';
import Control from 'react-leaflet-control';
import { Map, Marker, Popup, TileLayer, ZoomControl, ScaleControl } from 'react-leaflet';
import './Points.scss'

export default class PointsMap extends Component {
  state = {
    lat: 50.2, 
    lng: 30.2,
    zoom: 13,
  }

  handleClick = (e) => {
    this.addMarker();
  }

  addMarker() {

    // A) Following raises error:  
    var marker3 = L.marker([50.5, 30.5]).addTo(this.refs.map);

    // B) With following marker doesn't appear on map:
    const position2 = …
Run Code Online (Sandbox Code Playgroud)

leaflet reactjs react-leaflet

8
推荐指数
3
解决办法
1万
查看次数

Google OpenID Connect:如何验证id_token?

我创建了Backend服务器,它从移动应用程序(iOS)获取ID令牌.如何验证此令牌是否正常并且可以安全地使用它?

官方Google有关验证令牌的文档:

https://developers.google.com/identity/protocols/OpenIDConnect#validatinganidtoken

它建议在本地验证ID令牌,而不向Google发送验证请求.可以像在文档中那样在本地检查ID Token中的某些字段,或者我是否应该向Google发送一些请求以验证令牌?

Google文档提到有关调试和验证ID令牌的方法:

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

但它不建议在生产中使用它.我还考虑过使用Access Token和Id Token,并首先验证Access Token:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=

但它是否使验证客户端凭据(移动应用程序,Web应用程序)的整个过程更加安全?

openid google-api oauth-2.0 google-oauth openid-connect

6
推荐指数
1
解决办法
1309
查看次数

AWS API Gateway:表单数据支持

是否可以发送请求:Content-Type:multipart/form-data到API Gateway?

就我而言,我尝试通过邮递员发送如下表格数据:

user[email]:extest829@ex.com
user[password]:password
user[password_confirmation]:password
user[username]:testUser
Run Code Online (Sandbox Code Playgroud)

但似乎API Gateway失去了内容.

当我发送它时,一切正常:application/x-www-form-urlencodedapplication/json.

amazon-web-services aws-api-gateway

6
推荐指数
1
解决办法
7651
查看次数

AWS:我可以使用什么来在RDS上运行定期任务?

在特定的RDS列中作为日期,我会在用户的试验结束时保留信息.

我将在数据库中每天检查这些日期,并且当试用结束时少数几天,我想发送一封电子邮件(使用SES).

如何在AWS中运行定期任务来检查数据库?我知道我可以使用:

  • LAMBDA
  • EC2(或Elastic Beanstalk)

还有其他我错过的解决方案吗?

amazon-ec2 rds amazon-web-services aws-lambda

6
推荐指数
1
解决办法
3105
查看次数

基于微服务的后端-概念

我计划基于微服务构建后端。下图展示了我当前的想法:

在此处输入图片说明

两个重要功能是:

  • 上载大型文字和/或视频文件
  • 流视频-在Web应用程序和本机移动应用程序中显示用户

最终没有确定技术栈,但最初我想到的是:

  • 网路应用程式-ReactJs / Angular
  • 后端应用程序-Ruby on Rails

我对当前的概念有以下疑问:

  1. API Gateway是否应该充当路由器,将用户的请求重定向到特定的微服务?或者...应该是带有API的专用应用程序(例如Ruby on Rails应用程序)吗?
  2. 如何进行授权?我应该为此使用单独的微服务吗?假设用户上传文件,而他的请求应该转到第三个微服务:“大数据上传”。我应该在何时何地授权他访问?在那个微服务或更早的API Gateway中?还是应该在“身份验证微服务”中进行身份验证?
  3. 上传大文件-假设用户想通过HTTP将大型文件(带有原始数据的视频或压缩文本文件)从移动应用程序传输到后端。他的请求转到API网关,然后将其重定向到“大数据上传”微服务。应用程序将文件保存到对象存储。是上传文件的正确路径吗?或者我可以做一些捷径来缩短文件的路径?
  4. 视频流-用户上传视频文件时,我想将其放入资产(对象存储-例如Amazon S3)。将此视频呈现给Web应用程序或移动应用程序中的用户是否足够?(除了代码转换器服务和CDN之外)
  5. 负载平衡-使用负载平衡来控制流向微服务实例的流量(在API网关和绿色微服务之间的图片上)是否合理?还是这不是一个好方法,因为我们可能会丢失一些有关请求/收件人/用户的信息,甚至API网关都会成为更严重的“瓶颈”?
  6. 您认为这种架构概念是否具有易于扩展的良好潜力?当然,省略了硬件和软件配置。

cloud distributed ruby-on-rails video-streaming microservices

5
推荐指数
0
解决办法
385
查看次数

Multi Docker Elastic Beanstalk:上传.ebextensions

是否可以将.ebextensions部署到Multi-Docker Elastic Beanstalk?

我使用Dockerrun.aws.json文件上传我的应用程序,一切正常.我想设置日志以流式传输到Cloudwatch.我应该使用.ebextensions做到这一点.但是,如果我只在网络浏览器(AWS控制台)上传Dockerrun.aws.json(不是.zip或.war),我不知道如何附加.ebextensions .

  1. 如何将.ebxetensions部署到Multi Docker Elastic Beanstalk?
  2. ...或者是否可以设置哪些日志应该流式传输到Cloudwatch日志?

amazon-ec2 amazon-web-services docker amazon-elastic-beanstalk

5
推荐指数
1
解决办法
638
查看次数

AWS Cognito:在用户属性更改时更新JWT ID令牌

我想在令牌的有效负载中添加一个特定的属性.此属性很少更改(每月一次),但我希望在此更改后立即更新令牌.

工作流程

在Web /移动应用程序中,用户打开配置文件视图并更改属性X.此属性的当前值也存储在ID令牌中.因此,当用户提交编辑时,X的新值应保存在后端,并应替换ID令牌中的旧值.这很重要,因为属性X确定用户是否能够在app中执行特定的操作.

当有效负载的属性发生变化时,Cognito会做什么?它在下一个请求中发送新版本的JWT ID令牌?

我应该使用刷新令牌吗?或强制退出并登录用户?

amazon-web-services amazon-cognito

5
推荐指数
1
解决办法
491
查看次数

S3:如何上传大量文件

我必须上传100k小文件(总大小:200MB).

我试图通过网络浏览器(AWS控制台)这样做,但在前15分钟,我只上传了2MB.

将100k小文件上传到S3的最快方法是什么?

amazon-s3 amazon-web-services

2
推荐指数
2
解决办法
3082
查看次数

CBCentral vs CBCentralManager

它们之间有什么区别?我什么时候应该使用CBCentral,什么时候使用CBCentralManager

据我了解,CBCentralManager 和 CBCentral 都用于管理连接,但 CBCentral 允许移动应用程序充当另一个 BLE 设备,对吗?

ios bluetooth-lowenergy cbcentralmanager

0
推荐指数
1
解决办法
942
查看次数