Из того, что я могу сказать, вы хотите кортеж ключей, где каждое значение одинаково.
def get_matching_keys(data: dict) -> list:
# first, make everything a set
for key in data:
data [key] = set (data [key]) # makes order irrelevant
results = []
duplicates = []
for key, value in data.items():
if key in duplicates: continue # we already did this
result = [key]
duplicates.append (key)
for key2, value2 in data.items():
if key == key2: continue # skip the same key
else:
if value == value2:
result.append (key2)
duplicates.append (key2) # make sure we don't do it again
results.append (result)
return results
Я немного опоздал, но у меня есть решение!
Я обнаружил те же проблемы с инструментами Amazon AMI. Это достойная эталонная реализация, но ее очень сложно использовать, особенно когда у вас более пары экземпляров. Я написал заменяющий инструмент командной строки в рамках другого проекта под названием Rudy, который отвечает на большинство ваших проблем
Команды более интуитивно понятны, чем инструменты AMI Amazon:
экземпляры rudy-ec2 -C
rudy-ec2 группы -A -p 8080 -a 11.22.33.44 имя-группы
тома rudy-ec2 -C -s 100
образы rudy-ec2
Вся конфигурация находится в одном файле ( ~ / .rudy / конфигурации
).
Он может выводить в нескольких форматах (yaml, json, csv, tsv и, конечно, обычный текст):
rudy-ec2 -f yaml snapshots
---
:awsid: snap-2457b24d
:progress: 100%
:created: "2009-05-08T15:24:17.000Z"
:volid: vol-4ee10427
:status: completed
Что касается закрытых ключей, Не существует инструментов EC2, которые позволяют создавать закрытые ключи с паролем для загрузки общедоступного экземпляра , потому что API не поддерживает его. Однако, если вы создаете свой собственный образ, вы можете использовать свои личные ключи.
Дополнительная информация:
ElasticFox удобен для большинства задач. Это случаи, когда инструмент командной строки лучше подойдет. Я лично использую библиотеку boto для python. Это очень легко написать все необходимые операции. Вы также можете использовать его для загрузки / скачивания файлов с S3. В целом, я бы сказал, что язык сценариев, такой как Python или RUby, вместе с библиотекой AWS является лучшим решением.
Я лично использую инструменты командной строки Perl Тима Кея и довольно долгое время не использовал оригинальный API на основе Java. Отлично подходит для среды UNIX.
Не командная строка, но посмотрите, что даст вам бесплатная учетная запись RightScale - намного, намного проще, чем командная строка или ElasticFox IMO.
У меня есть инструмент для администрирования графической системы с открытым исходным кодом под названием EC2Dream, который заменяет инструмент командной строки. Он устанавливается на клиентов Windows, Linux и Mac OS и написан на Ruby и FXRuby. См. Www.ec2dream.com.
Нил Тернер