интересная проблема, и здесь мое предлагаемое решение:
import java.util.Collections;
import java.util.Vector;
public class CompareToken implements Comparable<CompareToken>
{
int valN;
String valS;
String repr;
public String toString() {
return repr;
}
public CompareToken(String s) {
int l = 0;
char data[] = new char[s.length()];
repr = s;
valN = 0;
for (char c : s.toCharArray()) {
if(Character.isDigit(c))
valN = valN * 10 + (c - '0');
else
data[l++] = c;
}
valS = new String(data, 0, l);
}
public int compareTo(CompareToken b) {
int r = valS.compareTo(b.valS);
if (r != 0)
return r;
return valN - b.valN;
}
public static void main(String [] args) {
String [] strings = {
"aaa",
"bbb3ccc",
"bbb12ccc",
"ccc 11",
"ddd",
"eee3dddjpeg2000eee",
"eee12dddjpeg2000eee"
};
Vector<CompareToken> data = new Vector<CompareToken>();
for(String s : strings)
data.add(new CompareToken(s));
Collections.shuffle(data);
Collections.sort(data);
for (CompareToken c : data)
System.out.println ("" + c);
}
}
Когда вы создаете экземпляр EC2, вы должны указать роль IAM, связанную с вашим контейнером ECS (если вы используете SDK / ..., вы должны указать «ARN профиля экземпляра» этой роли в параметрах), если вы используете при создании интерактивного кластера ECS при первом использовании ECS на веб-сайте aws у вас уже должна быть ссылка ecsInstanceRole на кластер по умолчанию.
Затем, после запуска, ваш экземпляр EC2 будет автоматически зарегистрирован как контейнер ECS в этом кластере.
Кроме сценария пользовательских данных, отображающего имя кластера не по умолчанию, помните, что экземплярам контейнера необходим внешний доступ к сети для связи со службой Amazon ECS. Поэтому, если ваши экземпляры контейнеров не имеют общедоступных IP-адресов, они должны использовать шлюз трансляции сетевых адресов (NAT) для обеспечения этого доступа.
Источник: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html