Ich habe etwas Ähnliches für ein Testframework um Terraform-Module in Erwägung gezogen und zuvor Moto für Spottbotaufrufe in Python verwendet.
Moto funktioniert durch Affe Patch-Aufrufe an AWS, so dass nur nativ mit Python funktioniert. Es bietet jedoch die mocked backend as a server läuft auf Flask im Stand-Alone-Modus verwendet werden.
Das heißt, ich habe gerade versucht es mit Terraforming und während plan
s scheinen in Ordnung eine sehr einfache Konfiguration führte zu diesem Fehler angewendet wird zu arbeiten:
* aws_instance.web: Error launching source instance: SerializationError: failed decoding EC2 Query response
caused by: parsing time "2015-01-01T00:00:00+0000" as "2006-01-02T15:04:05Z": cannot parse "+0000" as "Z"
ich zufällig dann, dass die Pläne bemerken komplette Fein auch wenn der Moto-Server nicht läuft und ich nur einen nicht vorhandenen lokalen Endpunkt im AWS provider verwende.
Als solcher, wenn Sie nur Pläne müssen, dann sollten Sie in der Lage sein, dies zu tun, indem sie ein endpoint
block Zugabe, die wie folgt auf localhost-Punkte:
provider "aws" {
skip_credentials_validation = true
max_retries = 1
skip_metadata_api_check = true
access_key = "a"
secret_key = "a"
region = "us-west-2"
endpoints {
ec2 = "http://127.0.0.1:5000/"
}
}
resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t2.micro"
tags {
Name = "HelloWorld"
}
}
Wie Sie diesen Endpunkt Block in zum Testen injizieren und nicht für Die Verwendung in der realen Welt ist wahrscheinlich eine andere Frage und würde weitere Informationen darüber erfordern, wie Ihre Tests erstellt werden.
Nach dem Hinzufügen von gefälschten Anmeldeinformationen zum Anbieter, es hat funktioniert! Vielen Dank! –