Осторожность
Этот репозиторий aws-nuke больше не поддерживается. Мы рекомендуем пользователям переключиться на активно поддерживаемую версию этого проекта по адресу ekristen/aws-nuke. Мы ценим всю поддержку и вклад, которые мы получали на протяжении всего существования этого проекта. Мы верим, что форк продолжит обеспечивать ту функциональность и поддержку, которую вы ожидаете от aws-nuke. Обратите внимание, что это прекращение поддержки означает, что мы не будем решать проблемы, принимать запросы на включение или выпускать будущие выпуски из этого репозитория. Благодарим вас за понимание и поддержку.
Удалите все ресурсы из учетной записи AWS.
Статус разработки aws-nuke стабилен, но вполне вероятно, что им охвачены не все ресурсы AWS. Поощряйте добавление недостающих ресурсов и создание запроса на включение или создание проблемы.
Имейте в виду, что aws-nuke — очень разрушительный инструмент, поэтому вам следует быть очень осторожным при его использовании. В противном случае вы можете удалить производственные данные.
Мы настоятельно рекомендуем вам не запускать это приложение ни в одной учетной записи AWS, поскольку вы не можете позволить себе потерять все ресурсы.
Чтобы уменьшить радиус взрыва при авариях, необходимо соблюдать некоторые меры предосторожности:
--no-dry-run
чтобы фактически удалить ресурсы.prod
. Эта строка жестко запрограммирована, и рекомендуется добавлять ее в каждую фактическую производственную учетную запись (например, mycompany-production-ecr
).Не стесняйтесь создавать проблему, если у вас есть идеи по улучшению процедур безопасности.
Обычно мы выпускаем новую версию после того, как накопилось достаточно изменений и прошло некоторое тестирование.
Вы можете найти двоичные файлы для Linux, macOS и Windows на странице выпусков, но мы также предоставляем контейнерные версии на quay.io/rebuy/aws-nuke и docker.io/rebuy/aws-nuke. Оба доступны для нескольких архитектур (amd64, Arm64 и Armv7).
Сначала вам нужно создать файл конфигурации для aws-nuke . Это минимальный вариант:
regions :
- eu-west-1
- global
account-blocklist :
- " 999999999999 " # production
accounts :
" 000000000000 " : {} # aws-nuke-example
С помощью этой конфигурации мы можем запустить aws-nuke :
$ aws-nuke -c config/nuke-config.yml --profile aws-nuke-example
aws-nuke version v1.0.39.gc2f318f - Fri Jul 28 16:26:41 CEST 2017 - c2f318f37b7d2dec0e646da3d4d05ab5296d5bce
Do you really want to nuke the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - would remove
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - would remove
eu-west-1 - EC2KeyPair - 'test' - would remove
eu-west-1 - EC2NetworkACL - 'acl-6482a303' - cannot delete default VPC
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - would remove
eu-west-1 - EC2SecurityGroup - 'sg-220e945a' - cannot delete group 'default'
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - would remove
eu-west-1 - EC2Subnet - 'subnet-154d844e' - would remove
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - would remove
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - would remove
eu-west-1 - IAMUserAccessKey - 'my-user -> ABCDEFGHIJKLMNOPQRST' - would remove
eu-west-1 - IAMUserPolicyAttachment - 'my-user -> AdministratorAccess' - [UserName: "my-user", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
eu-west-1 - IAMUser - 'my-user' - would remove
Scan complete: 13 total, 11 nukeable, 2 filtered.
Would delete these resources. Provide --no-dry-run to actually destroy resources.
Как мы видим, aws-nuke лишь перечисляет все найденные ресурсы и выходы. Это связано с отсутствием флага --no-dry-run
. Также он хочет удалить администратора. Мы не хотим этого делать, потому что мы используем этого пользователя для доступа к нашей учетной записи. Поэтому нам нужно расширить конфигурацию, чтобы она игнорировала этого пользователя:
regions :
- eu-west-1
account-blocklist :
- " 999999999999 " # production
accounts :
" 000000000000 " : # aws-nuke-example
filters :
IAMUser :
- " my-user "
IAMUserPolicyAttachment :
- " my-user -> AdministratorAccess "
IAMUserAccessKey :
- " my-user -> ABCDEFGHIJKLMNOPQRST "
$ aws-nuke -c config/nuke-config.yml --profile aws-nuke-example --no-dry-run
aws-nuke version v1.0.39.gc2f318f - Fri Jul 28 16:26:41 CEST 2017 - c2f318f37b7d2dec0e646da3d4d05ab5296d5bce
Do you really want to nuke the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - would remove
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - would remove
eu-west-1 - EC2KeyPair - 'test' - would remove
eu-west-1 - EC2NetworkACL - 'acl-6482a303' - cannot delete default VPC
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - would remove
eu-west-1 - EC2SecurityGroup - 'sg-220e945a' - cannot delete group 'default'
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - would remove
eu-west-1 - EC2Subnet - 'subnet-154d844e' - would remove
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - would remove
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - would remove
eu-west-1 - IAMUserAccessKey - 'my-user -> ABCDEFGHIJKLMNOPQRST' - filtered by config
eu-west-1 - IAMUserPolicyAttachment - 'my-user -> AdministratorAccess' - [UserName: "my-user", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
eu-west-1 - IAMUser - 'my-user' - filtered by config
Scan complete: 13 total, 8 nukeable, 5 filtered.
Do you really want to nuke these resources on the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - failed
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - triggered remove
eu-west-1 - EC2KeyPair - 'test' - triggered remove
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - failed
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - failed
eu-west-1 - EC2Subnet - 'subnet-154d844e' - failed
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - failed
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - failed
eu-west-1 - S3Object - 's3://rebuy-terraform-state-138758637120/run-terraform.lock' - triggered remove
Removal requested: 2 waiting, 6 failed, 5 skipped, 0 finished
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - failed
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - waiting
eu-west-1 - EC2KeyPair - 'test' - removed
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - failed
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - failed
eu-west-1 - EC2Subnet - 'subnet-154d844e' - failed
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - failed
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - failed
Removal requested: 1 waiting, 6 failed, 5 skipped, 1 finished
--- truncating long output ---
Как вы видите, aws-nuke теперь пытается удалить все нефильтрованные ресурсы, не заботясь о зависимостях между ними. Это приводит к ошибкам API, которые можно игнорировать. Эти ошибки отображаются в конце запуска aws-nuke , если они продолжают появляться.
aws-nuke повторяет попытку удаления всех ресурсов до тех пор, пока не будут удалены все указанные или пока не останутся только ресурсы с ошибками.
Существует два способа аутентификации aws-nuke . Существуют статические учетные данные и профили. Последний можно настроить в общем файле учетных данных (т. е. ~/.aws/credentials
) или в общем файле конфигурации (т. е. ~/.aws/config
).
Для использования статических учетных данных требуются флаги командной строки --access-key-id
и --secret-access-key
. Флаг --session-token
требуется только для временных сеансов.
Для использования общих профилей требуется флаг командной строки --profile
. Профиль должен быть определен либо со статическими учетными данными в общем файле учетных данных, либо в общем файле конфигурации с предполагаемой ролью.
Можно настроить aws-nuke для работы с конечными точками AWS, отличными от стандартных. Его можно использовать для интеграционного тестирования, указывающего на локальную конечную точку, например, на устройство S3 или кластер Stratoscale.
Чтобы настроить aws-nuke для использования пользовательских конечных точек, добавьте директивы конфигурации, как показано в следующем примере:
regions :
- demo10
# inspired by https://www.terraform.io/docs/providers/aws/guides/custom-service-endpoints.html
endpoints :
- region : demo10
tls_insecure_skip_verify : true
services :
- service : ec2
url : https://10.16.145.115/api/v2/aws/ec2
- service : s3
url : https://10.16.145.115:1060
- service : rds
url : https://10.16.145.115/api/v2/aws/rds
- service : elbv2
url : https://10.16.145.115/api/v2/aws/elbv2
- service : efs
url : https://10.16.145.115/api/v2/aws/efs
- service : emr
url : https://10.16.145.115/api/v2/aws/emr
- service : autoscaling
url : https://10.16.145.115/api/v2/aws/autoscaling
- service : cloudwatch
url : https://10.16.145.115/api/v2/aws/cloudwatch
- service : sns
url : https://10.16.145.115/api/v2/aws/sns
- service : iam
url : https://10.16.145.115/api/v2/aws/iam
- service : acm
url : https://10.16.145.115/api/v2/aws/acm
account-blocklist :
- " account-id-of-custom-region-prod " # production
accounts :
" account-id-of-custom-region-demo10 " :
Затем это можно использовать следующим образом:
$ aws-nuke -c config/my.yaml --access-key-id --secret-access-key --default-region demo10
aws-nuke version v2.11.0.2.gf0ad3ac.dirty - Tue Nov 26 19:15:12 IST 2019 - f0ad3aca55eb66b93b88ce2375f8ad06a7ca856f
Do you really want to nuke the account with the ID account-id-of-custom-region-demo10 and the alias 'account-id-of-custom-region-demo10'?
Do you want to continue? Enter account alias to continue.
> account-id-of-custom-region-demo10
demo10 - EC2Volume - vol-099aa1bb08454fd5bc3499897f175fd8 - [tag:Name: "volume_of_5559b38e-0a56-4078-9a6f-eb446c21cadf"] - would remove
demo10 - EC2Volume - vol-11e9b09c71924354bcb4ee77e547e7db - [tag:Name: "volume_of_e4f8c806-0235-4578-8c08-dce45d4c2952"] - would remove
demo10 - EC2Volume - vol-1a10cb3f3119451997422c435abf4275 - [tag:Name: "volume-dd2e4c4a"] - would remove
demo10 - EC2Volume - vol-1a2e649df1ef449686ef8771a078bb4e - [tag:Name: "web-server-5"] - would remove
demo10 - EC2Volume - vol-481d09bbeb334ec481c12beee6f3012e - [tag:Name: "volume_of_15b606ce-9dcd-4573-b7b1-4329bc236726"] - would remove
demo10 - EC2Volume - vol-48f6bd2bebb945848b029c80b0f2de02 - [tag:Name: "Data volume for 555e9f8a"] - would remove
demo10 - EC2Volume - vol-49f0762d84f0439da805d11b6abc1fee - [tag:Name: "Data volume for acb7f3a5"] - would remove
demo10 - EC2Volume - vol-4c34656f823542b2837ac4eaff64762b - [tag:Name: "wpdb"] - would remove
demo10 - EC2Volume - vol-875f091078134fee8d1fe3b1156a4fce - [tag:Name: "volume-f1a7c95f"] - would remove
demo10 - EC2Volume - vol-8776a0d5bd4e4aefadfa8038425edb20 - [tag:Name: "web-server-6"] - would remove
demo10 - EC2Volume - vol-8ed468bfab0b42c3bc617479b8f33600 - [tag:Name: "web-server-3"] - would remove
demo10 - EC2Volume - vol-94e0370b6ab54f03822095d74b7934b2 - [tag:Name: "web-server-2"] - would remove
demo10 - EC2Volume - vol-9ece34dfa7f64dd583ab903a1273340c - [tag:Name: "volume-4ccafc2e"] - would remove
demo10 - EC2Volume - vol-a3fb3e8800c94452aff2fcec7f06c26b - [tag:Name: "web-server-0"] - would remove
demo10 - EC2Volume - vol-a53954e17cb749a283d030f26bbaf200 - [tag:Name: "volume-5484e330"] - would remove
demo10 - EC2Volume - vol-a7afe64f4d0f4965a6703cc0cfab2ba4 - [tag:Name: "Data volume for f1a7c95f"] - would remove
demo10 - EC2Volume - vol-d0bc3f2c887f4072a9fda0b8915d94c1 - [tag:Name: "physical_volume_of_39c29f53-eac4-4f02-9781-90512cc7c563"] - would remove
demo10 - EC2Volume - vol-d1f066d8dac54ae59d087d7e9947e8a9 - [tag:Name: "Data volume for 4ccafc2e"] - would remove
demo10 - EC2Volume - vol-d9adb3f084cd4d588baa08690349b1f9 - [tag:Name: "volume_of_84854c9b-98aa-4f5b-926a-38b3398c3ad2"] - would remove
demo10 - EC2Volume - vol-db42e471b19f42b7835442545214bc1a - [tag:Name: "lb-tf-lb-20191126090616258000000002"] - would remove
demo10 - EC2Volume - vol-db80932fb47243efa67c9dd34223c647 - [tag:Name: "web-server-5"] - would remove
demo10 - EC2Volume - vol-dbea1d1083654d30a43366807a125aed - [tag:Name: "volume-555e9f8a"] - would remove
--- truncating long output ---
aws-nuke удаляет множество ресурсов, и в любом выпуске их может быть добавлено больше. В конце концов, все ресурсы должны быть удалены. Возможно, вы захотите ограничить количество удаляемых ресурсов. Есть несколько способов настроить это.
Один из способов — фильтры, о которых уже упоминалось. Для этого необходимо знать идентификатор каждого ресурса. Также можно предотвратить удаление целых типов ресурсов (например, S3Bucket
) двумя способами.
--target
ограничивает ядерную атаку указанными типами ресурсов.--exclude
предотвращает уничтожение указанных типов ресурсов.Также можно настроить типы ресурсов в файле конфигурации, как показано в этих примерах:
---
regions:
- "eu-west-1"
account-blocklist:
- 1234567890
resource-types:
# only nuke these three resources
targets:
- S3Object
- S3Bucket
- IAMRole
accounts:
555133742: {}
---
regions:
- "eu-west-1"
account-blocklist:
- 1234567890
resource-types:
# don't nuke IAM users
excludes:
- IAMUser
accounts:
555133742: {}
Если цели указаны в нескольких местах (например, в CLI и для учетной записи), то тип ресурса должен быть указан во всех местах. Другими словами, каждая конфигурация ограничивает предыдущие.
Если используется исключение, то все его типы ресурсов не будут удалены.
Подсказка: вы можете увидеть все доступные типы ресурсов с помощью этой команды:
aws-nuke resource-types
Эта функция еще не реализована и, вероятно, является частью
v2.18
.
aws-nuke поддерживает удаление ресурсов через API AWS Cloud Control. При выполнении aws-nuke он автоматически удалит набор ресурсов, управляемых вручную, через Cloud Control.
Только часть ресурсов, поддерживаемых Cloud Control, будет удалена автоматически, так как могут быть уже реализованные ресурсы, и их добавление также обойдет существующие фильтры в пользовательских конфигурациях, поскольку Cloud Control имеет другую схему именования и другой набор свойств. Более того, существуют некоторые ресурсы Cloud Control, требующие специальной обработки, которая еще не поддерживается aws-nuke .
Несмотря на то, что подмножество автоматически поддерживаемых ресурсов Cloud Control ограничено, вы можете настроить aws-nuke , чтобы он пробовал любой дополнительный ресурс. Либо через флаги командной строки, либо через файл конфигурации.
Для файла конфигурации вам необходимо добавить ресурс в список resource-types.cloud-control
:
resource-types :
cloud-control :
- AWS::EC2::TransitGateway
- AWS::EC2::VPC
Если вы хотите использовать командную строку, вам необходимо добавить флаг --cloud-control
для каждого ресурса, который вы хотите добавить:
aws-nuke
-c nuke-config.yaml
--cloud-control AWS::EC2::TransitGateway
--cloud-control AWS::EC2::VPC
Примечание. Некоторые ресурсы поддерживаются Cloud Control и уже встроены в aws-nuke . Если вы настроите использование Cloud Control для этих ресурсов, он не будет выполнять встроенный код для этого ресурса. Например, с --cloud-control AWS::EC2::VPC
он не будет использовать ресурс EC2VPC
.
Есть некоторые особенности, которые весьма самоуверенны. Чтобы они работали для всех, в aws-nuke есть флаги для включения этих функций вручную. Их можно настроить на корневом уровне конфигурации, например так:
---
feature-flags :
disable-deletion-protection :
RDSInstance : true
EC2Instance : true
CloudformationStack : true
force-delete-lightsail-addons : true
Это важно, например, для того, чтобы не удалять текущего пользователя, или для таких ресурсов, как S3 Buckets, которые имеют глобальное общее пространство имен и которые может быть сложно воссоздать. В настоящее время фильтрация основана на идентификаторе ресурса. Идентификатор будет напечатан на первом этапе aws-nuke (например, i-01b489457a60298dd
для экземпляра EC2).
Примечание. Даже при использовании фильтров не следует запускать aws-nuke ни в одной учетной записи AWS, поскольку вы не можете позволить себе потерять все ресурсы. В настройке фильтра легко допустить ошибку. Кроме того, поскольку aws-nuke находится в постоянной разработке, всегда есть возможность появления новых ошибок, независимо от того, насколько тщательно мы просматриваем новый код.
Фильтры являются частью конфигурации учетной записи и сгруппированы по типам ресурсов. Это пример конфигурации, которая удаляет все ресурсы, кроме пользователя- admin
с его правами доступа и двумя ключами доступа:
---
regions :
- global
- eu-west-1
account-blocklist :
- 1234567890
accounts :
0987654321 :
filters :
IAMUser :
- " admin "
IAMUserPolicyAttachment :
- " admin -> AdministratorAccess "
IAMUserAccessKey :
- " admin -> AKSDAFRETERSDF "
- " admin -> AFGDSGRTEWSFEY "
Любой ресурс, идентификатор которого точно соответствует любому из фильтров в списке, будет пропущен. Они будут помечены как «отфильтрованные по конфигурации» при запуске aws-nuke .
Некоторые ресурсы поддерживают фильтрацию по свойствам. Если ресурс поддерживает эти свойства, они будут перечислены в выводе, как в этом примере:
global - IAMUserPolicyAttachment - 'admin -> AdministratorAccess' - [RoleName: "admin", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
Чтобы использовать свойства, необходимо вместо простой строки указать объект со properties
и value
.
Эти типы можно использовать для упрощения настройки. Например, можно защитить все ключи доступа одного пользователя:
IAMUserAccessKey :
- property : UserName
value : " admin "
Существуют также дополнительные типы сравнения, помимо точного соответствия:
exact
– идентификатор должен точно соответствовать данной строке. Это значение по умолчанию.contains
— идентификатор должен содержать заданную строку.glob
– идентификатор должен соответствовать заданному шаблону glob. Это означает, что строка может содержать подстановочные знаки, такие как *
и ?
. Обратите внимание, что подстановка предназначена для путей к файлам, поэтому подстановочные знаки не соответствуют разделителю каталогов ( /
). Подробности о шаблоне glob можно найти в документации библиотеки.regex
– идентификатор должен соответствовать данному регулярному выражению. Подробности о синтаксисе можно найти в документации библиотеки.dateOlderThan
— идентификатор анализируется как метка времени. После того, как к нему добавлено смещение (указанное в поле value
), результирующая временная метка должна быть ПОСЛЕ текущего времени. Подробности о синтаксисе смещения можно найти в документации библиотеки. Поддерживаемые форматы даты: время эпохи, 2006-01-02
, 2006/01/02
, 2006-01-02T15:04:05Z
, 2006-01-02T15:04:05.999999999Z07:00
и 2006-01-02T15:04:05Z07:00
. Чтобы использовать тип сравнения, отличный от типа по умолчанию, необходимо указать объект с type
и value
вместо простой строки.
Эти типы можно использовать для упрощения настройки. Например, можно защитить все ключи доступа одного пользователя, используя glob
:
IAMUserAccessKey :
- type : glob
value : " admin -> * "
Также можно использовать свойства фильтра и типы фильтров вместе. Например, чтобы защитить всю размещенную зону определенного TLD:
Route53HostedZone :
- property : Name
type : glob
value : " *.rebuy.cloud. "
Любой результат фильтра можно инвертировать, используя invert: true
, например:
CloudFormationStack :
- property : Name
value : " foo "
invert : true
В этом случае будут отфильтрованы все CloudFormationStack , кроме тех, которые называются «foo». Имейте в виду, что aws-nuke внутренне берет каждый ресурс и применяет к нему каждый фильтр. Если фильтр соответствует, он помечает узел как отфильтрованный.
Возможно, некоторые фильтры одинаковы для нескольких учетных записей. Это особенно может произойти, если используются такие инструменты подготовки, как Terraform, или если ресурсы IAM следуют тому же шаблону.
В этом случае aws-nuke поддерживает предустановленные фильтры, которые можно применять к нескольким учетным записям. Конфигурация может выглядеть так:
---
regions :
- " global "
- " eu-west-1 "
account-blocklist :
- 1234567890
accounts :
555421337 :
presets :
- " common "
555133742 :
presets :
- " common "
- " terraform "
555134237 :
presets :
- " common "
- " terraform "
filters :
EC2KeyPair :
- " notebook "
presets :
terraform :
filters :
S3Bucket :
- type : glob
value : " my-statebucket-* "
DynamoDBTable :
- " terraform-lock "
common :
filters :
IAMRole :
- " OrganizationAccountAccessRole "
brew install aws-nuke
Самый простой способ его установки — загрузить последнюю версию с GitHub.
Загрузите и извлеките $ wget -c https://github.com/rebuy-de/aws-nuke/releases/download/v2.25.0/aws-nuke-v2.25.0-linux-amd64.tar.gz -O - | tar -xz -C $HOME/bin
Запустите $ aws-nuke-v2.25.0-linux-amd64
Чтобы скомпилировать aws-nuke из исходного кода, вам понадобится работающая среда разработки Golang. Исходники должны быть клонированы в $GOPATH/src/github.com/rebuy-de/aws-nuke
.
Также вам необходимо установить golint и GNU Make.
Затем вам просто нужно запустить make build
, чтобы скомпилировать двоичный файл в каталог проекта, или make install
go install aws-nuke в $GOPATH/bin
. С помощью make xc
вы можете кросс-компилировать aws-nuke для других платформ.
Вы можете запустить aws-nuke с помощью Docker, используя такую команду:
$ docker run
--rm -it
-v /full-path/to/nuke-config.yml:/home/aws-nuke/config.yml
-v /home/user/.aws:/home/aws-nuke/.aws
quay.io/rebuy/aws-nuke:v2.25.0
--profile default
--config /home/aws-nuke/config.yml
Чтобы это заработало, вам необходимо настроить пути к конфигурации AWS и конфигурации aws-nuke .
Также вам необходимо указать правильный профиль AWS. Вместо монтирования каталога AWS вы можете использовать флаги --access-key-id
и --secret-access-key
.
Убедитесь, что вы используете последнюю версию тега изображения. Альтернативно вы можете использовать main
для последней разрабатываемой версии, но имейте в виду, что она, скорее всего, сломается в любой момент.
Для модульного тестирования aws-nuke некоторые тесты требуют запуска gomock. Это запускается через go generate ./...
, но автоматически запускается через make test
. Чтобы запустить модульные тесты:
make test
Не стесняйтесь создавать проблему GitHub для любых отчетов об ошибках или запросов функций. Для вопросов используйте наш список рассылки: [email protected]. Вы также можете поискать в архиве списка рассылки, была ли у кого-то такая же проблема: https://groups.google.com/d/forum/aws-nuke
Вы можете внести свой вклад в aws-nuke , разветвив этот репозиторий, внеся изменения и создав запрос на включение в наш репозиторий. Если вы не знаете, как решить проблему, или у вас есть другие вопросы по поводу вклада, создайте проблему на GitHub.