aws_s3 – управление объектами в S3
Описание
- Этот модуль позволяет пользователю управлять корзинами S3 и объектами в них. Он включает поддержку создания и удаления объектов и корзин, получения объектов в виде файлов или строк и генерации ссылок для скачивания. Этот модуль зависит от библиотек boto3 и botocore.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| aws_access_key строка | Идентификатор ключа доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| bucket - / обязательно | Имя ведра. | |
| debug_botocore_endpoint_logs булево добавлено в 2.8 |
| Использовать логирование botocore.endpoint для анализа уникальных (а не суммарных) API-вызовов «ресурс:действие», выполняемых во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в итоговый список, созданный во время выполнения плейбука. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| dest - | Путь к целевому файлу при загрузке объекта/ключа с помощью операции GET. | |
| dualstack булево добавлено в 2.7 |
| Включает Amazon S3 Dual-Stack Endpoints, что позволяет использовать S3 для связи с использованием как IPv4, так и IPv6. Требуется как минимум версия botocore 1.4.45. |
| ec2_url строка | URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион обязателен. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется. | |
| encrypt булево |
| При установленном значении для режима PUT запрашивает шифрование на стороне сервера. |
| encryption_kms_key_id - добавлено в 2.7 | Идентификатор ключа KMS для использования при шифровании объектов с помощью aws:kms шифрования. Игнорируется, если шифрование не aws:kms
| |
| encryption_mode - добавлено в 2.7 |
| Режим шифрования, который использовать, если encrypt задан |
| expiration - | По умолчанию: 600 | Предельное время (в секундах) для URL, сгенерированного и возвращенного S3/Walrus при выполнении операций mode=put или mode=geturl. |
| headers - | Пользовательские заголовки для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'. | |
| ignore_nonexistent_bucket булево |
| Переопределяет начальный поиск ведра в случае, если права ведра или IAM политики ограничительны. Например, пользователь может иметь разрешение GetObject, но не другие разрешения. В этом случае использование опции mode: get завершится ошибкой без указания ignore_nonexistent_bucket: True. |
| marker - | Указывает ключ, с которого начать при использовании режима list. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа после маркерного в порядке. | |
| max_keys - | По умолчанию: 1000 | Максимальное количество результатов для возврата в режиме list, установите это значение, если нужно получить меньше, чем стандартные 1000 ключей. |
| metadata - | Метаданные для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'. | |
| mode - / обязательно |
| Переключает поведение модуля между режимами загрузить (загрузка), получить (скачивание), получить_url (возвратить url скачивания, Ansible 1.3+), получить_строку (скачать объект как строку (1.3+)), список (список ключей, Ansible 2.0+), создать (ведро), удалить (ведро), и удалить_объект (удалить объект, Ansible 2.0+). |
| object - | Имя ключа объекта внутри ведра. Может использоваться для создания «виртуальных каталогов», см. примеры. | |
| overwrite - | По умолчанию: "всегда" | Принудительно перезаписывать локально в файловой системе или удаленно объект/ключ. Используется с операциями PUT и GET. Булево или одно из [всегда, никогда, другое], true равно 'всегда', false равно 'никогда', нововведение в 2.0. При значении 'другое' сумма md5 локального файла сравнивается с 'ETag' объекта/ключа в S3. ETag может или не может быть хешем MD5 данных объекта. См. заголовок ответа ETag здесь https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html
Псевдонимы: force |
| permission - | По умолчанию: "private" | Эта опция позволяет пользователю установить предопределенные права доступа на создаваемый объект/ведро. Права доступа, которые можно установить, это 'private', 'public-read', 'public-read-write', 'authenticated-read' для ведра или 'private', 'public-read', 'public-read-write', 'aws-exec-read', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control' для объекта. Несколько прав доступа могут быть указаны как список. |
| prefix - | По умолчанию: "" | Ограничивает ответ ключами, которые начинаются с указанного префикса для режима list |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| region строка | AWS регион для создания ведра. Если не задан, проверяются значения переменных окружения AWS_REGION и EC2_REGION, а затем настройки aws_region и ec2_region в файле конфигурации Boto. Если ни один из них не задан, регион по умолчанию S3 Location: US Standard. До Ansible 1.8 этот параметр можно было указать, но он не имел эффекта. Псевдонимы: aws_region, ec2_region | |
| retries - | По умолчанию: 0 | При возобновляемой ошибке сколько раз повторить попытку, прежде чем фактически провалиться. |
| rgw булево |
| Включить поддержку Ceph RGW S3. Эта опция требует явного указания URL через s3_url. |
| s3_url - | Конечная точка URL S3 для использования с Ceph, Eucalyptus и fakes3 и т.д. В противном случае предполагается AWS. Псевдонимы: S3_URL | |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| src - | Путь к исходному файлу при выполнении операции PUT. | |
| validate_certs булево |
| Если установлено «нет», сертификаты SSL для версий boto >= 2.6.0 не будут проверены. |
| version - | Идентификатор версии объекта внутри ведра. Может использоваться для получения определенной версии файла, если в целевом ведре включено управление версиями. |
Примечания
Примечание
- В версии 2.4 этот модуль был переименован из
s3в aws_s3. - Если параметры не заданы внутри модуля, можно использовать следующие переменные окружения в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONможно использовать для указания региона AWS, если это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
- name: Simple PUT operation
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
- name: Simple PUT operation in Ceph RGW S3
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
rgw: true
s3_url: "http://localhost:8000"
- name: Simple GET operation
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
dest: /usr/local/myfile.txt
mode: get
- name: Get a specific version of an object.
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
version: 48c9ee5131af7a716edc22df9772aa6f
dest: /usr/local/myfile.txt
mode: get
- name: PUT/upload with metadata
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
metadata: 'Content-Encoding=gzip,Cache-Control=no-cache'
- name: PUT/upload with custom headers
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
headers: 'x-amz-grant-full-control=emailAddress=owner@example.com'
- name: List keys simple
aws_s3:
bucket: mybucket
mode: list
- name: List keys all options
aws_s3:
bucket: mybucket
mode: list
prefix: /my/desired/
marker: /my/desired/0023.txt
max_keys: 472
- name: Create an empty bucket
aws_s3:
bucket: mybucket
mode: create
permission: public-read
- name: Create a bucket with key as directory, in the EU region
aws_s3:
bucket: mybucket
object: /my/directory/path
mode: create
region: eu-west-1
- name: Delete a bucket and all contents
aws_s3:
bucket: mybucket
mode: delete
- name: GET an object but don't download if the file checksums match. New in 2.0
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
dest: /usr/local/myfile.txt
mode: get
overwrite: different
- name: Delete an object from a bucket
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
mode: delobj
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| contents строка | (для операции getstr) | содержимое объекта в виде строки Пример: Привет, мир! |
| expiry целое число | (для операции geturl) | количество секунд, в течение которых действителен предварительно подписанный URL Пример: 600 |
| msg строка | всегда | сообщение, указывающее статус операции Пример: Операция PUT завершена |
| s3_keys список | (для операции list) | список ключей объектов Пример: ['prefix1/', 'prefix1/key1', 'prefix1/key2'] |
| url строка | (для операций put и geturl) | URL объекта Пример: https://my-bucket.s3.amazonaws.com/my-key.txt?AWSAccessKeyId=<access-key>&Expires=1506888865&Signature=<signature> |
Статус
- Этот модуль гарантирует обратную совместимость изменений интерфейса в будущем. [stableinterface]
- Этот модуль поддерживается командой Ansible Core. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat: Red Hat Knowledge Base article.
Авторы
- Lester Wade (@lwade)
- Sloane Hertel (@s-hertel)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/aws_s3_module.html