Модуль community.aws.s3_sync — эффективная загрузка нескольких файлов в S3
Примечание
Этот модуль входит в коллекцию community.aws (версия 10.1.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.34.0
- botocore >= 1.34.0
Параметры
Параметр | Комментарии |
|---|---|
access_key псевдонимы: aws_access_key_id, aws_access_key строка | Идентификатор ключа доступа 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 для соответствия AWS botocore SDK. |
aws_ca_bundle путь | Путь к пакету сертификатов центра сертификации, используемому для проверки SSL-сертификатов. Также можно использовать переменную среды |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры приведены в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
bucket строка / обязательный | Имя бакета. |
cache_control строка | Заголовок Cache-Control, устанавливаемый для загружаемых объектов. Директивы разделяются запятыми. По умолчанию: |
debug_botocore_endpoint_logs логический | Использовать регистратор Также можно использовать переменную среды Варианты:
|
delete логический | Удалять удалённые файлы, которые есть в бакете, но отсутствуют в корневом каталоге файлов. Варианты:
|
endpoint_url псевдонимы: aws_endpoint_url строка | URL для подключения вместо конечных точек AWS по умолчанию. Хотя его можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную среды |
exclude строка | Сопоставление файлов с использованием шаблонов оболочки. Применяется после include для исключения файлов (например, чтобы пропустить Несколько шаблонов разделяются запятыми. По умолчанию: |
file_change_strategy строка | Способ определения различий для синхронизации только изменённых файлов. В отличие от rsync, файлы не обновляются частично: они либо полностью пропускаются, либо загружаются целиком. date_size загружает файл, если размеры не совпадают или дата изменения локального файла новее, чем у версии в S3. checksum сравнивает значения etag на основе реализации S3 для md5 с разбиением на фрагменты. force всегда загружает все файлы. Варианты:
|
file_root путь / обязательный | Путь к файлу или каталогу для синхронизации. Это локальный путь. Этот корневой путь удаляется из имени ключа, поэтому подкаталоги сохраняются как ключи. |
include строка | Сопоставление файлов с использованием шаблонов оболочки. Применяется перед exclude для определения подходящих файлов (например, только Несколько шаблонов разделяются запятыми. По умолчанию: |
key_prefix строка | Добавляет этот префикс к пути S3 в дополнение к пути файла. При необходимости модуль добавит косую черту в конец префикса. По умолчанию: |
mime_map словарь | Запись словаря, сопоставляющая расширение с MIME-типом. Она заменяет любой MIME-тип по умолчанию или определённый автоматически. Например: |
mode строка | Направление синхронизации. Варианты:
|
permission строка | Предустановленный ACL для синхронизируемых файлов. Изменение этого ACL влияет только на новые синхронизируемые файлы и не вызывает повторную загрузку всех файлов. Варианты:
|
profile псевдонимы: aws_profile строка | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную среды Параметр profile несовместим с параметрами aws_access_key, aws_secret_key и session_token. |
region псевдонимы: aws_region строка | Регион AWS. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную среды Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
secret_key псевдонимы: aws_secret_access_key, aws_secret_key строка | Секретный ключ доступа AWS. Дополнительные сведения о токенах доступа см. в документации 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. |
session_token псевдонимы: aws_session_token строка | Токен сеанса AWS STS для временных учётных данных. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную среды Параметры session_token и profile являются взаимоисключающими. |
storage_class строка добавлено в community.aws 1.5.0 | Класс хранения, назначаемый каждому объекту, добавляемому в бакет S3. Варианты:
|
validate_certs логический | Если установлено значение Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность указать aws_ca_bundle. Варианты:
|
Примечания
Примечание
- Внимание: В случае модулей переменные среды и файлы конфигурации считываются из контекста «хоста» Ansible, а не из контекста «контроллера». Поэтому файлы, возможно, потребуется явно скопировать на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста «контроллера» Ansible, а не из контекста «хоста».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения учётных данных и других параметров по умолчанию, например региона, из файлов конфигурации в контексте «хоста» 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/aws/s3_sync_module.html