I AWS request spot fleet
und geben Sie die jinja
Vorlage als Benutzerdaten und zum Beispiel passieren zu schaffen versuchen und ich verfolge diese Dokumentation: http://boto3.readthedocs.io/en/latest/reference/services/ec2.htmlAWS boto3 request_spot_fleet jinja Vorlage als Benutzerdaten übergeben - Ungültige BASE64 Codierung von Benutzerdaten
sucht - request_spot_fleet(**kwargs)
:
'UserData': 'string',
UserData (string) -- The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
template_file = (current_dir + '/config/user.jinja')
template = templateEnv.get_template(template_file)
template_vars = template_vars = { 'var1' : var1 }
output_template = template.render(template_vars)
self.output_template = base64.b64encode(output_template).decode("ascii")
Fehler:
self.output_template = base64.b64encode(output_template).decode("ascii")
File "/usr/lib/python3.5/base64.py", line 59, in b64encode
encoded = binascii.b2a_base64(s)[:-1]
TypeError: a bytes-like object is required, not 'str'
Wenn ich die jinja
Vorlage passieren wie:
self.output_template = output_template
com.amazonaws.services.ec2.model.AmazonEC2Exception:
Invalid BASE64 encoding of user data
(Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue)
Alles funktioniert gut, wenn ich die Userdata auf String ändern:
self.output_template = base64.b64encode(b'test').decode("ascii")
'UserData': self.output_template,
Irgendwelche Vorschläge?
Die Dokumentation besagt eindeutig, dass Base64-Codierung für Sie durchgeführt wird, wenn Sie ein AWS-SDK verwenden und ein AWS-SDK (Boto3) verwenden. Warum übergeben Sie eine Base64-codierte Zeichenfolge, übergeben Sie einfach eine Zeichenfolge. – helloV
nicht sicher so, wie ich die Jinja-Vorlage übergeben kann, wenn ich es so tun werde 'self.output_template = output_template', sehe ich einen Fehler auf der Konsole aws' com.amazonaws.services.ec2.model.AmazonEC2Exception: Ungültige BASE64-Codierung der Benutzerdaten (Service: AmazonEC2; Statuscode: 400; Fehlercode: InvalidParameterValue) ' – Berlin