Проблема синхронизации S3, запущенная в конвейере Azure devops в Linux

#amazon-s3 #azure-devops #aws-cli

#amazon-s3 #azure-devops #aws-cli

Вопрос:

Я также задавал вопрос непосредственно в GitHub проекта, но я также рискну, поскольку здесь больше людей смотрят.

Подтвердите, изменив [ ] на [x] ниже:

Проблема связана с использованием:

  • [x] Service API: я хочу сделать X с помощью службы Y, что мне делать?
  • [ ] CLI: передача аргументов или конфигураций cli.
  • [ ] Другое / Не уверен.

Платформа / ОС / оборудование / устройство На чем вы используете cli? Я использую CLI на последней версии ubuntu (в настоящее время ubuntu-18.04), я также пробовал с ubuntu-20.04. Это используется на моем компакт-диске в Azure devops

Опишите вопрос Я продолжаю запускать следующую команду command как часть моего конвейера CD, и он продолжает сбоить с кодом ошибки 255. Когда я запускаю ту же команду локально на своем компьютере с тем же профилем пользователя, это работает. Однако мой локальный компьютер — macOS 10.15.

 aws s3 sync /mybuildartifact/ s3://bucketName/subDir/ --delete --profile myUserProfile --debug
 

Я убедился, что CLI правильно установил профиль пользователя и что команда имеет к нему доступ. Я использовал следующие команды для настройки профиля пользователя и проверки его существования (я использую тот же метод для локального тестирования)

 aws configure import --csv file://$(serviceUserCredentials.secureFilePath)
aws configure list-profiles
 

Журналы / вывод
Получите полную обратную трассировку и журналы ошибок, добавив --debug в команду.

2020-11-24 16:24:11 346 — MainThread — botocore.hooks — DEBUG — Event load-cli-arg.custom.sync.metadata: вызов обработчика <awscli.paramfile.Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event load-cli-arg.custom.sync.copy-props: вызывающий обработчик <awscli.paramfile.Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event process-cli-arg.custom.sync: вызов обработчика <awscli.argprocess.Объект ParamShorthandParser в 0x7f1a968225f8> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event load-cli-arg.custom.sync.metadata-директива: вызов обработчика <awscli.paramfile .Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event load-cli-arg.custom.sync.size-only: вызов обработчика <awscli.paramfile.Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event process-cli-arg.custom.sync: вызов обработчика <awscli.argprocess.Объект ParamShorthandParser в 0x7f1a968225f8> 2020-11-24 16:24:11,346 — MainThread — botocore. крючки — ОТЛАДКА — Загрузка события-cli-arg.custom.sync.exact-timestamps: вызов обработчика <awscli.paramfile.Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event process-cli-arg.custom.sync: вызов обработчика <awscli.argprocess.Объект ParamShorthandParser в 0x7f1a968225f8> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event load-cli-arg.custom.sync.delete: вызов обработчика <awscli.paramfile.Объект URIArgumentHandler в 0x7f1a9618a320> 2020-11-24 16:24:11,346 — MainThread — botocore.hooks — DEBUG — Event process-cli-arg.custom.sync: вызов обработчика <awscli.argprocess.Объект ParamShorthandParser в 0x7f1a968225f8> 2020-11-24 16:24:11,346 — КОНЕЧНАЯ ТОЧКА MainThread — botocore.utils — DEBUG — IMDS: http://169.254.169.254 / 2020-11-24 16:24:11,349 — MainThread — urllib3.connectionpool — DEBUG — Запуск нового HTTP-соединения (1): 169.254.169.254:80 2020-11-24 16:24:11,351 — Основной поток -urllib3.connectionpool — DEBUG — http://169.254.169.254:80 «ПОСТАВИТЬ /последнюю версию /api/токен HTTP/1.1» 400 11 2020-11-24 16:24:11,351 — MainThread — awscli.clidriver — DEBUG — Исключение, перехваченное в main() Трассировка (последний последний вызов): Файл «awscli/clidriver.py «, строка 453, в основном файле «awscli/customizations/commands.py «, строка 198, в файле вызова «awscli/customizations/commands.py «, строка 191, в файле вызова «awscli/настройки/s3/подкоманды.py», строка 709, в файле _run_main «awscli/customizations/s3/subcommands.py «, строка 480, в файле _run_main «awscli/customizations/s3/subcommands.py «, строка 473, в файле get_client «botocore/session.py «, строка 778, в файле create_client «botocore/session.py «, строка 827, в файле _resolve_region_name «botocore/session.py «, строка 237, в файле get_config_variable «botocore/configprovider.py «, строка 289, в файле get_config_variable «botocore/configprovider.py «, строка 386, в файле предоставления «awscli/utils.py «, строка 60, в файле предоставления «awscli/utils.py «, строка 65, в файле _get_instance_metadata_region «awscli/utils.py «, строка 105, в файле retrieve_region «awscli/utils.py «, строка 114, в файле _get_region «botocore/utils.py «, строка 298, в _fetch_metadata_token botocore.utils.BadIMDSRequestError: <запрос botocore.aws.Объект AWSRequest в 0x7f1a96155160>

Комментарии:

1. I keep running the following command command as part of my CD pipeline and it keeps failing with 255 error code. When I run the same command locally on my machine with the same user profile, it works. Разработчики Azure используют учетную запись службы сбора проектов для запуска команды в конвейере. Пожалуйста, убедитесь, что у него есть достаточное разрешение, такое же, как и у вашей локальной учетной записи.

2. как я уже говорил, я использовал точно такой же профиль пользователя. Я ответил на свой вопрос ответом, который я получил от участников репозитория на GitHub.

Ответ №1:

Итак, я получил ответ на GitHub, который связал меня с другой проблемой по какой-то причине, связанной с тем, как выполняется подключение к сети. для получения более подробной информации вы можете увидеть следующую проблему:

https://github.com/aws/aws-cli/issues/5623

В некоторых случаях, например, при запуске командной строки AWS в экземпляре Azure, другая служба может быть запущена с тем же IP-адресом, который не маршрутизируется, используемым IMDS. Один из способов обойти это — явно задать регион.

Как только я установил регион для профиля, который я использовал для запуска команды, это сработало.

Это также объясняет, почему у меня не было проблем с локальной работой.

Комментарии:

1. Спасибо, что поделились. Вы могли бы пометить его на случай, если кто-то другой столкнется с таким же сообщением об ошибке.