Модуль community.aws.s3_sync – Эффективная загрузка нескольких файлов в S3
Примечание
Этот модуль входит в коллекцию community.aws (версия 8.0.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.
Чтобы использовать его в книге задач, укажите: community.aws.s3_sync.
Новинка в community.aws 1.0.0
Обзор
- Модуль S3 отлично подходит, но очень медленный для большого объёма файлов — даже десяток файлов заметно ухудшит скорость. Помимо скорости, он обрабатывает подстановку шаблонов, включения/исключения, типы MIME, отображение сроков действия, рекурсию, управление кешем и интеллектуальное отображение каталогов.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 3.6
- boto3 >= 1.26.0
- botocore >= 1.29.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key, ec2_access_key string | Идентификатор ключа доступа AWS. См. документацию AWS для получения дополнительной информации о токенах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Переменные окружения Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore. Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной окружения |
aws_ca_bundle path | Расположение пакета CA, используемого при проверке сертификатов SSL. Переменная окружения |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
bucket string / required | Имя корзины. |
cache_control string | Заголовок Cache-Control, установленный для загружаемых объектов. Директивы разделяются запятыми. По умолчанию: |
debug_botocore_endpoint_logs boolean | Использовать Переменная окружения Варианты:
|
delete boolean | Удалить удаленные файлы, которые существуют в корзине, но отсутствуют в корневом каталоге файлов. Варианты:
|
endpoint_url aliases: ec2_url, aws_endpoint_url, s3_url string | URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS сервисам, коллекции amazon.aws и community.aws тестируются только на AWS. Переменные окружения Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01. Поддержка переменной окружения |
exclude string | Соответствие файлов в стиле шаблонов оболочки. Используется после include для удаления файлов (например, пропустить Для нескольких шаблонов разделите их запятыми. По умолчанию: |
file_change_strategy string | Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не исправляются — они полностью пропускаются или полностью загружаются. date_size будет загружать, если размеры файлов не совпадают или если дата изменения локального файла новее, чем версия s3 checksum будет сравнивать значения etag на основе реализации s3 фрагментированных md5. force всегда будет загружать все файлы. Варианты:
|
file_root path / required | Путь к файлу/каталогу для синхронизации. Это локальный путь. Этот корневой путь очищается от имени ключа, поэтому подкаталоги останутся как ключи. |
include string | Соответствие файлов в стиле шаблонов оболочки. Используется перед exclude для определения подходящих файлов (например, только Для нескольких шаблонов разделите их запятыми. По умолчанию: |
key_prefix string | В дополнение к пути к файлу, добавьте префикс пути s3. Модуль добавит слеш в конце префикса, если это необходимо. По умолчанию: |
mime_map dictionary | Запись словаря из расширения в тип MIME. Это переопределит любой тип MIME по умолчанию/распознанный. Например |
mode string | Направление синхронизации. Варианты:
|
permission string | Стандартное разрешение для синхронизированных файлов. Изменение этого разрешения влияет только на недавно синхронизированные файлы, не вызывая полной перезагрузки. Варианты:
|
profile aliases: aws_profile string | Используемый профиль AWS для аутентификации. Дополнительную информацию о профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и security_token. |
region aliases: aws_region, ec2_region string | Используемая AWS-область. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменные окружения Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Алиас Поддержка переменной окружения |
secret_key aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key string | Секретный ключ доступа AWS. Дополнительную информацию об access токенах см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры secret_key и profile взаимоисключающие. Алиас aws_secret_access_key добавлен в релизе 5.1.0 для согласованности с AWS botocore SDK. Алиас ec2_secret_key устарел и будет удален после 2024-12-01. Поддержка переменной окружения |
session_token aliases: aws_session_token, security_token, aws_security_token, access_token string | Токен сессии AWS STS для использования с временными учетными данными. Дополнительную информацию об access токенах см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры security_token и profile взаимоисключающие. Алиасы aws_session_token и session_token добавлены в релизе 3.2.0, параметр был переименован из security_token в session_token в релизе 6.0.0. Алиасы security_token, aws_security_token и access_token устарели и будут удалены после 2024-12-01. Поддержка переменных окружения |
storage_class string добавлено в community.aws 1.5.0 | Класс хранения, который будет связан с каждым объектом, добавленным в ведро S3. Варианты:
|
validate_certs boolean | При значении Установка validate_certs=false категорически не рекомендуется. В качестве альтернативы, установите aws_ca_bundle. Варианты:
|
Примечания
Примечание
- Внимание: Для модулей переменные окружения и конфигурационные файлы считываются из контекста Ansible 'хост', а не 'контроллер'. Поэтому файлы могут потребоваться скопировать на ‘хост’. Для плагинов поиска и подключения переменные окружения и конфигурационные файлы считываются из контекста Ansible 'контроллер', а не 'хост'.
- AWS SDK (boto3), используемый Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как область, из своих конфигурационных файлов в контексте Ansible ‘хост’ (обычно
~/.aws/credentials). Подробнее см. https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
- name: basic upload
community.aws.s3_sync:
bucket: tedder
file_root: roles/s3/files/
- name: basic upload using the glacier storage class
community.aws.s3_sync:
bucket: tedder
file_root: roles/s3/files/
storage_class: GLACIER
- name: basic individual file upload
community.aws.s3_sync:
bucket: tedder
file_root: roles/s3/files/file_name
- name: all the options
community.aws.s3_sync:
bucket: tedder
file_root: roles/s3/files
mime_map:
.yml: application/text
.json: application/text
key_prefix: config_files/web
file_change_strategy: force
permission: public-read
cache_control: "public, max-age=31536000"
storage_class: "GLACIER"
include: "*"
exclude: "*.txt,.*"
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
filelist_actionable список / элементы=строка | список файлов (словари) файлов, которые будут загружены после принятия стратегического решения Возвращается: всегда Пример: |
filelist_initial список / элементы=строка | список файлов (словари) из начальной операции подстановки Возвращается: всегда Пример: |
filelist_local_etag список / элементы=строка | список файлов (словари), включающий рассчитанный локальный etag Возвращается: всегда Пример: |
filelist_s3 список / элементы=строка | список файлов (словари), включающий информацию о ранее загруженных версиях Возвращается: всегда Пример: |
filelist_typed список / элементы=строка | список файлов (словари) с рассчитанными или переопределёнными типами MIME Возвращается: всегда Пример: |
uploads список / элементы=строка | список файлов (словари) файлов, которые были фактически загружены Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/s3_sync_module.html