Spec-Zone.ru › Ansible

Модуль 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_ID или AWS_ACCESS_KEY в порядке убывания приоритета.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для соответствия AWS botocore SDK.

aws_ca_bundle

путь

Путь к пакету сертификатов центра сертификации, используемому для проверки SSL-сертификатов.

Также можно использовать переменную среды AWS_CA_BUNDLE.

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

логический

Использовать регистратор botocore.endpoint для анализа уникальных (а не общего количества) вызовов API "resource:action", выполненных во время задачи, и выводить набор в ключ resource_actions результатов задачи. Используйте callback aws_resource_action, чтобы вывести общий список вызовов, выполненных за время плейбука.

Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

delete

логический

Удалять удалённые файлы, которые есть в бакете, но отсутствуют в корневом каталоге файлов.

Варианты:

  • false ← (по умолчанию)
  • true

endpoint_url

псевдонимы: aws_endpoint_url

строка

URL для подключения вместо конечных точек AWS по умолчанию. Хотя его можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS.

Также можно использовать переменную среды AWS_URL.

exclude

строка

Сопоставление файлов с использованием шаблонов оболочки.

Применяется после include для исключения файлов (например, чтобы пропустить "*.txt").

Несколько шаблонов разделяются запятыми.

По умолчанию: ".*"

file_change_strategy

строка

Способ определения различий для синхронизации только изменённых файлов. В отличие от rsync, файлы не обновляются частично: они либо полностью пропускаются, либо загружаются целиком.

date_size загружает файл, если размеры не совпадают или дата изменения локального файла новее, чем у версии в S3.

checksum сравнивает значения etag на основе реализации S3 для md5 с разбиением на фрагменты.

force всегда загружает все файлы.

Варианты:

  • "force"
  • "checksum"
  • "date_size" ← (по умолчанию)

file_root

путь / обязательный

Путь к файлу или каталогу для синхронизации. Это локальный путь.

Этот корневой путь удаляется из имени ключа, поэтому подкаталоги сохраняются как ключи.

include

строка

Сопоставление файлов с использованием шаблонов оболочки.

Применяется перед exclude для определения подходящих файлов (например, только "*.gif").

Несколько шаблонов разделяются запятыми.

По умолчанию: "*"

key_prefix

строка

Добавляет этот префикс к пути S3 в дополнение к пути файла. При необходимости модуль добавит косую черту в конец префикса.

По умолчанию: ""

mime_map

словарь

Запись словаря, сопоставляющая расширение с MIME-типом. Она заменяет любой MIME-тип по умолчанию или определённый автоматически. Например: {".txt": "application/text", ".yml": "application/text"}

mode

строка

Направление синхронизации.

Варианты:

  • "push" ← (по умолчанию)

permission

строка

Предустановленный ACL для синхронизируемых файлов.

Изменение этого ACL влияет только на новые синхронизируемые файлы и не вызывает повторную загрузку всех файлов.

Варианты:

  • "private"
  • "public-read"
  • "public-read-write"
  • "authenticated-read"
  • "aws-exec-read"
  • "bucket-owner-read"
  • "bucket-owner-full-control"

profile

псевдонимы: aws_profile

строка

Именованный профиль AWS для аутентификации.

Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную среды AWS_PROFILE.

Параметр profile несовместим с параметрами aws_access_key, aws_secret_key и session_token.

region

псевдонимы: aws_region

строка

Регион AWS.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменную среды AWS_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.

Также можно использовать переменные среды AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY в порядке убывания приоритета.

Параметры 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.

Также можно использовать переменную среды AWS_SESSION_TOKEN.

Параметры session_token и profile являются взаимоисключающими.

storage_class

строка

добавлено в community.aws 1.5.0

Класс хранения, назначаемый каждому объекту, добавляемому в бакет S3.

Варианты:

  • "STANDARD" ← (по умолчанию)
  • "REDUCED_REDUNDANCY"
  • "STANDARD_IA"
  • "ONEZONE_IA"
  • "INTELLIGENT_TIERING"
  • "GLACIER"
  • "DEEP_ARCHIVE"
  • "OUTPOSTS"

validate_certs

логический

Если установлено значение false, SSL-сертификаты при обмене данными с API AWS не проверяются.

Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность указать aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Внимание: В случае модулей переменные среды и файлы конфигурации считываются из контекста «хоста» 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

список / элементы=строка

Список файлов (словари), которые будут загружены после выбора стратегии.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477931256, "s3_path": "s3sync/policy.json", "whysize": "151 / 151", "whytime": "1477931256 / 1477929260"}]

filelist_initial

список / элементы=строка

Список файлов (словари), полученный при первоначальном применении подстановочных шаблонов.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "modified_epoch": 1477416706}]

filelist_local_etag

список / элементы=строка

Список файлов (словари), включающий вычисленные локальные значения etag.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706, "s3_path": "s3sync/policy.json"}]

filelist_s3

список / элементы=строка

Список файлов (словари), включающий сведения о ранее загруженных версиях.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706, "s3_path": "s3sync/policy.json"}]

filelist_typed

список / элементы=строка

Список файлов (словари) с вычисленными или переопределёнными MIME-типами.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706}]

uploads

список / элементы=строка

Список файлов (словари), которые были фактически загружены.

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "s3_path": "s3sync/policy.json", "whysize": "151 / 151", "whytime": "1477931637 / 1477931489"}]

Авторы

  • Ted Timmons (@tedder)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API