AWS MediaConvert не удалось определить регион для корзины s3.Bucket(name='myname')

моя цель - создать задание MediaConvert из заданного шаблона, используя boto3 с python: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mediaconvert.html#MediaConvert.Client.create_job

По-видимому, MediaConvert не может определить регион моего выходного ведра s3. У меня сложилось впечатление, что ведра были глобальными, но даже после некоторой переделки я не смог решить проблему.

Вот сообщение об ошибке на панели инструментов MediaConvert:

Could not identify region for bucket s3.Bucket(name='mybucket'): Failed to lookup region of buckets3.Bucket(name='mybucket')

Код ошибки 1404.

Когда я нажимаю на группу вывода на панели инструментов для невыполненного задания, меня перенаправляют на «https://console.aws.amazon.com/s3/buckets/s3.Bucket(имя='mybucket')/?region=us-east-1», что, очевидно, не может разрешить ведро. Правильный путь был бы "https://console.aws.amazon.com/s3/buckets/mybucket/?region=us-east-1".

Вот код, который запускает задание:

media_client = boto3.client('mediaconvert', region_name='us-east-1')
endpoints = media_client.describe_endpoints()
customer_media_client = boto3.client('mediaconvert', region_name='us-east-1', endpoint_url=endpoints['Endpoints'][0]['Url'])
customer_media_client.create_job(
                JobTemplate='job-template',
                Role='arn:aws:iam::1234567890:role/MediaConvert',
                Settings=...

В настройках я использую следующие OutputGroupSettings:

                        "OutputGroupSettings": {
                            "Type": "FILE_GROUP_SETTINGS",
                            "FileGroupSettings": {
                                "Destination": "s3://%s/" % target_bucket
                            }
                        }

Я убедился, что задания MediaConvert и корзины S3 находятся в одном регионе (us-east-1).

Есть идеи, о чем ошибка? Если вам нужно больше кода, пожалуйста, дайте мне знать.


Я также задавал этот вопрос на форумах aws: https://forums.aws.amazon.com/thread.jspa?threadID=304143

у твоего ведра есть точка в названии? Кроме того, вам удалось решить проблему?

Tadas T 11.10.2019 15:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
686
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я решил проблему, извлекая "s3://%s/" % target_bucket в отдельное объявление.

s3_target = "s3://%s/" % target_bucket

...

"Destination": s3_target
Ответ принят как подходящий

Похоже, это известная проблема, связанная с оператором форматирования строки %, используемым в словаре Python.

В фиксации Проблема № 14123: Явно упомяните, что форматирование строки % в старом стиле имеет оговорки, но не исчезнет в ближайшее время..

The use of a binary operator means that care may be needed in order to format tuples and dictionaries correctly.

Проверьте этот отвечать для более подробной информации.

Это объясняет, почему выполнение задания за пределами dict решает проблему. Рассмотрите возможность использования метода .format() для замены %.

Мое сообщение об ошибке

Я получил такое же сообщение об ошибке от MediaConvert, но в моей проблеме отсутствовал "/" после имени корзины в «Назначении».

Первоначально мой код был:

FileGroupSettings['Destination'] = 's3://' + bucketName + S3key

Добавив косую черту, он мог бы найти нужное ведро

FileGroupSettings['Destination'] = 's3://' + bucketName + '/' + S3key

Другие вопросы по теме