Добавление второй службы с AWS Copilot
Я хорошо знаком с тем, как делать все эти (довольно утомительные) вещи вручную с помощью ECS.
Я экспериментирую с Copilot - он действительно работает - у меня очень легко создать одну службу, но в моем решении есть несколько служб / контейнеров.
Как мне теперь добавить в свой кластер вторую службу / контейнер?
1 ответ
Краткий ответ: перейдите в каталог кода второй службы и запустите
copilot init
очередной раз! Если вам нужно указать другой файл докеров, вы можете использовать
--dockerfile
флаг. Если вам нужно использовать существующее изображение, вы можете использовать
--image
с именем существующего реестра контейнеров.
Длинный ответ:
Copilot хранит метаданные в хранилище параметров SSM в учетной записи, которая использовалась для запуска
copilot app init
или же
copilot init
, так что пока вы не меняете учетные данные AWS, которые используете при запуске Copilot, все должно работать только при запуске
copilot init
в новом репозитории.
Некоторые другие варианты использования:
Если это существующее изображение, такое как redis или postgres, и вам не нужно ничего настраивать в фактическом изображении или открывать его, вы можете запустить
copilot init -t Backend\ Service --image redis --port 6379 --name redis
Если ваша служба находится в отдельном репозитории кода и нуждается в доступе к Интернету, вы можете cd в этот каталог и запустить
copilot init --app $YOUR_APP_NAME --type Load\ Balanced\ Web\ Service --dockerfile ./Dockerfile --port 1234 --name $YOUR_SERVICE_NAME --deploy
Так что все, что вам нужно сделать, это запустить
copilot init --app $YOUR_APP_NAME
с теми же учетными данными AWS в новом каталоге, и вы сможете настроить и развернуть свои вторые сервисы.
Copilot также позволяет настроить постоянное хранилище, связанное с данной службой, с помощью
copilot storage init
команда. Это указывает новую таблицу DynamoDB или корзину S3, которая будет создана при запуске
copilot svc deploy
. Он создаст одно дополнение хранилища для каждой среды, в которой вы развертываете службу, чтобы не смешивать тестовые и производственные данные.