我是ECS的新手,我正在尝试使用Fargate在ECS任务中部署几个容器。
我有1个正在运行的容器使用Angular2,并且在nginx上运行,另一个容器是后端,并且在Springboot上运行,并使用端口42048。
我将awsvpc网络与Fargate一起使用,我必须这样做。
Angular应用程序使用localhost:42048 / some_url与后端通信,并且在我的本地docker中可以正常工作,但是在AWS中,前端找不到后端。目前,我的端口映射为80的前端和42048的后端,而在本地部署时前端能够以localhost:42048的方式找到后端
任何帮助将不胜感激。谢谢
答案 0 :(得分:1)
在AWSVPC中不允许链接。
当设置为桥接时,您只能在网络模式下进行链接。
links
Type: string array
Required: no
link参数允许容器相互通信 无需端口映射。 仅在网络中受支持 任务定义的模式设置为桥接。名称:internalName 结构类似于Docker链接中的name:alias。最多255 字母(大写和小写),数字,连字符和下划线 被允许。有关链接Docker容器的更多信息,请转到 至 https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/。 此参数映射到以下网址的“创建容器”部分中的链接: Docker Remote API和docker run的
--link
选项。
注意
使用awsvpc网络模式的Windows容器或任务不支持此参数。
重要
并置在单个容器实例上的容器可能能够相互通信,而无需链接或主机端口映射。使用安全组和VPC设置在容器实例上实现网络隔离。
在网络模式下,您必须在相同的任务定义中定义两个容器,然后在链接中提到该容器的名称。
答案 1 :(得分:0)
使用Fargate,如果您想使用 <dx-button id="gridRealistSelected"
icon="fas fa-clipboard-check"
[height]="34" [width]="40">
</dx-button>
<dx-button id="gridSharePlan"
icon="fa fa-share-alt"
[height]="34" [width]="40">
</dx-button>
<dx-data-grid id="gridContainer"
keyExpr="id"
[dataSource]="shoppingPlan">
<dxo-export
fileName="Rencana Belanja"
[enabled]="true"
[allowExportSelectedData]="false">
</dxo-export>
<dxi-column
dataField="ket"
caption="Keterangan">
</dxi-column>
<dxi-column
dataField="harga"
caption="Harga">
</dxi-column>
</dx-data-grid>
访问后端,则可以尝试在相同的Task定义中配置Frontend和Backend。在部署任务时,在同一任务定义中定义的所有容器都将在同一基础主机上运行,我们可以使用localhost访问它。
请记住,Fargate存储是临时性的,后端不应该在容器中维护应用程序状态。
localhost:42048
但是,恐怕这种方法适合于生产级。