当前位置: 首页 > 知识库问答 >
问题:

如何在AWS中通信前端、角应用程序和多个后端API?

洪弘毅
2023-03-14
{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "backend-svc-1",
      "host": {
        "sourcePath": "/var/app/current/backend-svc-1"
      }
    },
        {
      "name": "backend-svc-2",
      "host": {
        "sourcePath": "/var/app/current/backend-svc-2"
      }
    },
    {
      "name": "angular-frontend-app",
      "host": {
        "sourcePath": "/var/app/current/angular-frontend-app"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "angular-frontend-app",
      "image": "angular-frontend-app",
      "environment": [
        {
          "name": "Container",
          "value": "angular-frontend-app"
        }
      ],
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 4200
        }
      ],
      "links": [
        "backend-svc-1",
        "backend-svc-2"
      ]
    },
    {
      "name": "backend-svc-1",
      "image": "backend-svc-1",
      "environment": [
        {
          "name": "Container",
          "value": "backend-svc-1"
        }
      ],
      "essential": true,
      "memory": 128,
    }
    {
      "name": "backend-svc-2",
      "image": "backend-svc-2",
      "environment": [
        {
          "name": "Container",
          "value": "backend-svc-2"
        }
      ],
      "essential": true,
      "memory": 128
    }
  ]
}

另外,您对如何最好地实现我提出的架构有什么建议?我读过很多文章,其中有些人说我应该在S3中把我的Angular应用程序作为一个静态站点来托管,并通过API网关路由我的请求。我看到其他站点说我应该为每个服务管理自己的ECS实例,并通过API网关路由请求。所以总的来说,我对如何使用AWS有点困惑,我希望有人能在这方面给我提供任何指导。

提前感谢!

共有1个答案

秦才良
2023-03-14

这个问题似乎很广泛,但在使用AWS中的容器时可以考虑一些问题。

当我这样做时,我如何在我的angular应用程序中检索关于后端-SVC-1的主机名的信息?

您需要将应用程序负载均衡器放置在这些服务的顶部,并在从前端应用程序请求路由时,根据主机名或请求路径将请求路由到后端服务。

当谈到容器时,我更喜欢ECS,现在ECS提供了不同的味道,就像fargate,你不需要管理或担心基础设施。

您只需要创建3个服务

  • 前端
  • 后台-SVC-1
  • 后台-SVC-2
 类似资料:
  • 这里的前后端通信指的是kibana插件server端与client端通信。一般都是http请求,本章讲解angulajs与react两种模式下通信如何编写。 server端 在index.js初始化server端代码 初始化 import serverRoute from './server/routes/server'; init(server, options) {

  • 我尝试将我的棱角前端与我的Java/Spring Boot后端通信。但是终端显示了这个错误: [HPM]尝试将请求/API/DADOS从localhost:4500代理到http://localhost:8080(ECONNREFUSED)时出错(https://nodejs.org/api/errors.html#errors_common_system_errors) 下面是我的示例.serv

  • 我有一个棱角的前端,我想有访问图像在我的后端。因此,我创建了经过安全验证的webservices; core.js:4081错误类型错误:无法读取未定义的属性“file” console.log“GetAllParam() param-site.service.ts:35 http://localhost:8082

  • 我正在用spring boot微服务配置Keycloak SSO。我希望多个keycloak客户端访问Spring Boot服务。如果在Spring Boot应用程序中使用Keycloak适配器,则required属性只支持一个客户机和secret。如何在运行时在spring boot app中添加多个客户端? 我在中使用了以下适配器 以下是在中配置的 动态客户机注册可用于spring boot

  • 我有一个用Angular编写的UI应用程序,它有一个在NodeJS中运行的后端。我还有另外两个将从NodeJS后端调用的服务。这些应用程序运行在docker容器中,并部署到AWS中的Kubernetes集群中。 流程是这样的: 我尝试创建一个AWS API网关,它指向Angular UI的ELB IP,但它不能提供页面。 做这件事的正确方法是什么?任何帮助都是非常感谢的。