Удаление бакета
Важно
Удалить можно только пустой бакет. В консоли управления информация о количестве объектов в бакете обновляется с задержкой в несколько минут.
Чтобы удалить бакет, в который записываются логи другого бакета, в настройках исходного бакета выключите механизм логирования или выберите другой целевой бакет для хранения логов.
- В консоли управления
выберите каталог. - Перейдите в сервис Object Storage.
- Выберите нужный бакет и нажмите
→ Удалить. - В открывшемся окне нажмите Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для удаления бакета:
yc storage bucket delete --help -
Получите список бакетов в каталоге по умолчанию:
yc storage bucket listРезультат:
+------------------+----------------------+-------------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+-------------+-----------------------+---------------------+ | first-bucket | b1gmit33ngp6******** | 53687091200 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+-------------+-----------------------+---------------------+ -
Сохраните имя бакета (столбец
NAME), который нужно удалить. -
Удалите бакет:
yc storage bucket delete --name <имя_бакета>Где
--name— имя бакета, который нужно удалить.
Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.
В терминале выполните команду aws s3api delete-bucket:
aws s3api delete-bucket \
--endpoint-url=https://storage.yandexcloud.kz \
--bucket <имя_бакета>
Где:
--bucket— имя бакета, который нужно удалить.--endpoint-url— эндпоинт Object Storage.
Также вы можете использовать команду aws s3 rb:
aws --endpoint-url=https://storage.yandexcloud.kz \
s3 rb s3://<имя_бакета>
Чтобы одновременно удалить несколько бакетов, выполните команду:
Примечание
Авторизация в Amazon S3 HTTP API и инструментах с его поддержкой осуществляется с помощью статических ключей, полученных для сервисного аккаунта.
Вы можете просматривать список бакетов только в том каталоге, в котором был создан используемый сервисный аккаунт.
-
Bash:
aws s3api list-buckets \ --endpoint-url=https://storage.yandexcloud.kz \ --query '<запрос>' \ --output text | xargs -I {} aws s3api delete-bucket --endpoint-url=https://storage.yandexcloud.kz --bucket {}Где
--query— запрос в формате JMESPath .Пример команды для удаления всех бакетов, имена которых начинаются на
samplebucket:aws s3api list-buckets \ --endpoint-url=https://storage.yandexcloud.kz \ --query 'Buckets[?starts_with(Name, `samplebucket`) == `true`].[Name]' \ --output text | xargs -I {} aws s3api delete-bucket --endpoint-url=https://storage.yandexcloud.kz --bucket {} -
PowerShell:
Foreach($x in (aws s3api list-buckets ` --endpoint-url=https://storage.yandexcloud.kz ` --query '<запрос>' ` --output text)) ` {aws s3api delete-bucket ` --endpoint-url=https://storage.yandexcloud.kz ` --bucket $x}Где
--query— запрос в формате JMESPath .Пример команды для удаления всех бакетов, имена которых начинаются на
samplebucket:Foreach($x in (aws s3api list-buckets ` --endpoint-url=https://storage.yandexcloud.kz ` --query 'Buckets[?starts_with(Name, `samplebucket`) == `true`].[Name]' ` --output text)) ` {aws s3api delete-bucket ` --endpoint-url=https://storage.yandexcloud.kz ` --bucket $x}
Примечание
Если вы работаете с Object Storage через Terraform от имени сервисного аккаунта, назначьте сервисному аккаунту нужную роль, например storage.admin, на каталог, в котором будут создаваться ресурсы.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Важно
Для корректной работы Terraform в регионе Казахстан укажите в конфигурационном файле Terraform в блоке provider эндпоинты API Yandex Cloud и Object Storage:
provider "yandex" {
zone = "kz1-a"
endpoint = "api.yandexcloud.kz:443"
storage_endpoint = "https://storage.yandexcloud.kz"
}
Подробнее о настройках провайдера см. в разделе Настройте провайдер.
Чтобы удалить бакет, созданный с помощью Terraform:
-
Откройте файл конфигураций Terraform и удалите фрагмент с описанием бакета.
Пример описания бакета в конфигурации Terraform
... resource "yandex_storage_bucket" "test" { access_key = "YCAJEX9Aw2ge********-w-lJ" secret_key = "YCONxG7rSdz********_NRy5VbKzKlqZ********" bucket = "<имя_бакета>" } ... -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения можно в консоли управления
. -
Чтобы удалить бакет, воспользуйтесь методом REST API delete для ресурса Bucket, вызовом gRPC API BucketService/Delete или методом S3 API deleteBucket.