我正在尝试使用boto3(环境Python 3.5,Windows 7)提交EC2 SPOT实例请求。 我需要传递UserData参数以运行初始脚本。
我遇到的错误是: File "C:\ Users ... \ Python \ Python35 \ lib \ site-packages \ botocore \ client.py",第222行,在_make_api_call中 引发ClientError(parsed_response,operation_name) botocore.exceptions.ClientError:调用RequestSpotInstances操作时出现Invalid BASE64 encoding of user data Code的错误。
我正在遵循这份文档 https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.request_spot_instances 如果我将UserData参数去掉 - 一切正常。 我尝试了不同的方法来传递参数,但最终都得到了相同或类似的错误。 Boto 3脚本
我遇到的错误是: File "C:\ Users ... \ Python \ Python35 \ lib \ site-packages \ botocore \ client.py",第222行,在_make_api_call中 引发ClientError(parsed_response,operation_name) botocore.exceptions.ClientError:调用RequestSpotInstances操作时出现Invalid BASE64 encoding of user data Code的错误。
我正在遵循这份文档 https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.request_spot_instances 如果我将UserData参数去掉 - 一切正常。 我尝试了不同的方法来传递参数,但最终都得到了相同或类似的错误。 Boto 3脚本
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
}
})
base64.b64encode(b'yum install -y php').decode("ascii")
。 - Laurent LAPORTE