Ошибка кодирования AWS Boto3 BASE64 при вызове метода client.request_spot_instances

Я пытаюсь отправить запрос на экземпляр SP2 EC2, используя boto3 (Environment Python 3.5, Windows 7). Мне нужно передать параметр UserData для запуска начальных скриптов.

Ошибка, которую я получаю, – это файл «C: \ Users … \ Python \ Python35 \ lib \ site-packages \ botocore \ client.py», строка 222, в _make_api_call поднять ClientError (parsed_response, имя_операции) botocore.exceptions.ClientError: Произошла ошибка (InvalidParameterValue) при вызове операции RequestSpotInstances: Недопустимая кодировка данных BASE64. Код

Я следую этой документации https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.request_spot_instances

Если я выберу параметр UserData, все будет хорошо.

Я пробовал разные способы передать параметр, но в итоге получаю аналогичные ошибки.

Boto 3 Script

client = session.client('ec2') myparam = str(base64.b64encode(bytes('yum install -y php', 'utf-8'))) response = client.request_spot_instances( SpotPrice='0.4', InstanceCount=1, Type='one-time', LaunchSpecification={ 'ImageId': 'ami-xxxxxx', 'KeyName': 'xxxxx', 'InstanceType': 't1.micro', 'UserData': myparam, 'Monitoring': { 'Enabled': True } }) 

One Solution collect form web for “Ошибка кодирования AWS Boto3 BASE64 при вызове метода client.request_spot_instances”

Я думаю, вы не должны преобразовать строку base64 в str . Вы используете Python 3?

Заменить:

 myparam = str(base64.b64encode(bytes('yum install -y php', 'utf-8'))) 

От:

 myparam = base64.b64encode(b'yum install -y php') 
  • Как создать SECRET_HASH для AWS Cognito, используя boto3?
  • Чтобы проверить, встал ли экземпляр AWS после перезагрузки с помощью python
  • Как обновить метаданные существующего объекта в AWS S3 с помощью python boto3?
  • Полное сканирование dynamoDb с помощью boto3
  • Как выполнять команды в экземпляре AWS с помощью Boto3
  • Mocking boto3 S3 клиентский метод Python
  • Boto3 для загрузки всех файлов из ведра S3
  • boto3 поиск неиспользуемых групп безопасности
  • Как отправить SMS с пользовательским идентификатором отправителя с помощью Amazon SNS и Python и boto3
  • Извлечение имен подпапок в ведро S3 из boto3
  • UnsupportedAlgorithm: этот бэкэнд не поддерживает эту сериализацию ключей. - Криптография Python load_pem_private_key
  • Python - лучший язык программирования в мире.