我非常熟悉使用ECS手动完成所有这些(非常乏味的)工作。
我正在试验Copilot-确实有效-我可以很轻松地完成一项服务,但是我的解决方案有多个服务/容器。
现在如何向集群添加第二个服务/容器?
答案 0 :(得分:3)
简短的回答:转到第二个服务的代码目录,然后再次运行copilot init
!如果需要指定其他dockerfile,则可以使用--dockerfile
标志。如果需要使用现有映像,则可以将--image
与现有容器注册表的名称一起使用。
长答案:
Copilot将元数据存储在用于运行copilot app init
或copilot init
的帐户的SSM参数存储中,因此,只要您不更改运行Copilot时使用的AWS凭证,就应该当您在新存储库中运行copilot init
时,它才可以正常工作。
其他一些用例:
如果它是现有图像,例如redis或postgres,并且您不需要自定义任何有关实际图像的信息或将其公开,则可以运行
copilot init -t Backend\ Service --image redis --port 6379 --name redis
如果您的服务位于单独的代码存储库中并且需要访问Internet,则可以cd进入该目录并运行
copilot init --app $YOUR_APP_NAME --type Load\ Balanced\ Web\ Service --dockerfile ./Dockerfile --port 1234 --name $YOUR_SERVICE_NAME --deploy
因此,您只需在新目录中使用相同的AWS凭证运行copilot init --app $YOUR_APP_NAME
,就可以设置和部署第二个服务。
Copilot还允许您使用copilot storage init
命令来设置与给定服务关联的永久性存储。这指定了一个新的DynamoDB表或S3存储桶,将在运行copilot svc deploy
时创建。它将在您将服务部署到的每个环境中创建一个存储插件,以免混淆测试和生产数据。