Ответ 1
Это не совсем понятно, о чем вы просите, или о цели, которую вы пытаетесь достичь, но следующее должно поставить вас на правильный путь.
"Кластер ECS" на самом деле является просто услугой Amazon, когда вы создаете кластер, на самом деле ничего не предусмотрено. Вы можете представить пустой кластер в качестве записи или заполнителя в службе ECS.
Чтобы делать что-либо с кластером, ему нужны экземпляры. Когда вы загружаете компьютер EC2 из поддерживаемого AMI, соответствующей роли IAM и имени кластера, записанного в файл конфигурации, экземпляр присоединяется к кластеру. (Если вы создаете кластер через консоль AWS, создается шаблон CloudFormation, который обрабатывает подготовку и согласование этих шагов.) Управление кластером ECS может затем планировать задачи и службы на этом экземпляре, как вы определили в службе ECS.
Без каких-либо случаев не может быть никаких контейнеров для прослушивания, поэтому в вашем ALB не может быть никаких целевых групп, которые направляются на что угодно. Таким образом, невозможно get from the ELB to the cluster...
как вы просили, когда нет запущенных экземпляров.
Вы можете найти следующие команды - лучший способ определить, есть ли у вас работающий кластер.
Во-первых, используйте команду list-clusters
чтобы показать, какие кластеры доступны:
aws ecs list-clusters
{
"clusterArns": [
"arn:aws:ecs:eu-west-1:XXXXXXXXX:cluster/your_cluster"
]
}
Затем используйте вывод из этого, чтобы показать, есть ли экземпляры EC2, зарегистрированные в кластере:
aws ecs describe-clusters --clusters your_cluster
{
"clusters": [
{
"status": "ACTIVE",
"statistics": [],
"clusterName": "your_cluster",
"registeredContainerInstancesCount": 1,
"pendingTasksCount": 0,
"runningTasksCount": 0,
"activeServicesCount": 0,
"clusterArn": "arn:aws:ecs:eu-west-1:XXXXXXXXX:cluster/your_cluster"
}
],
"failures": []
}
Обратите внимание, что свойство registeredContainerInstancesCount
показывает количество запущенных экземпляров. Я предполагаю, что у вас есть ваши службы ECS, чтобы регистрировать задачи (контейнеры) с помощью ALB, поэтому, когда счетчик больше 0
, это будет возможно.
Таким образом, запрашивая эту собственность должна сказать вам, если ваш кластер "на" или нет:
if [[ $(aws ecs describe-clusters --clusters your_cluster | jq -r '.clusters[].registeredContainerInstancesCount') -gt 0 ]] ; then
echo "cluster is on"
else
echo "cluster is off"
fi