【发布时间】:2018-01-27 15:51:03
【问题描述】:
我正在使用 AWS API 创建一个 Spot 实例。当我尝试以文件格式提供用户数据时,出现错误
“botocore.exceptions.ClientError:调用RequestSpotInstances操作时发生错误(InvalidParameterValue):用户数据的BASE64编码无效
session = boto3.Session()
client = session.client('ec2', region_name = 'us-west-2')
response = client.request_spot_instances(
InstanceCount=1,
LaunchSpecification={
'ImageId': 'ami-012345',
'InstanceType': 't2.medium',
'Placement': {'AvailabilityZone': 'us-west-2a'},
'SecurityGroupIds': ['sg-012345'],
'SubnetId': 'subnet-012345',
'UserData': 'file://my_script0.txt'
},
SpotPrice='0.0139',
Type='persistent',
InstanceInterruptionBehavior = 'stop'
)
根据 AWS 文档,如果我们想将用户数据作为文件传递,我们可以通过在文件名前加上“file://”来实现。 但似乎这个 API 期望整个文件内容首先进行 base64 编码。
【问题讨论】:
标签: amazon-web-services amazon-ec2 aws-sdk aws-cli