Ich habe versucht, von CloudFormation zu AWS CDK zu wechseln, und der Build ist heute fehlgeschlagen. Notieren Sie sich daher die Lösung.
Ich wollte nur ein AWS-Beispiel erstellen ...! !! https://github.com/aws-samples/aws-cdk-examples/tree/master/python/ecs/fargate-load-balanced-service
Im Gegensatz zu CloudFormation ist die Abstraktion intensiv, sodass Sie eine VPC in einer Zeile erstellen können. Stattdessen kenne ich den Inhalt überhaupt nicht.
vpc = ec2.Vpc(
self, "MyVpc",
max_azs=2
)
$ cdk deploy
~ Abkürzung ~
Do you wish to deploy these changes (y/n)? y
~ Abkürzung ~
9/36 | 7:11:35 AM | CREATE_COMPLETE | AWS::EC2::VPC | MyVpc (MyVpcF9F0CA6F)
~ Abkürzung ~
10/36 | 7:11:38 AM | CREATE_FAILED | AWS::EC2::Subnet | MyVpc/PublicSubnet1/Subnet (MyVpcPublicSubnet1SubnetF123456) Value (ap-northeast-1a) for parameter availabilityZone is invalid. Subnets can currently only be created in the following availability zones: ap-northeast-1d, ap-northeast-1c, ap-northeast-1b. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx)
Subnets can currently only be created in the following availability zones:
ap-northeast-1d, ap-northeast-1c, ap-northeast-1b.
Ja. Ich bin es seit den Tagen von CloudFormation gewohnt, beim Erstellen eines Subnetzes von der Verfügbarkeitszone beeinflusst zu werden. Sobald ich mich daran gewöhnt habe, möchte ich es schnell lösen, aber ich bin ratlos, weil ich nicht weiß, was ich tun soll. Ich verstehe, dass ich wütend war, als ich versuchte, es für ap-nordost-1a zu schaffen. Um es anders herum auszudrücken, ich weiß nicht wirklich, warum ich versucht habe, es dort zu schaffen.
In der Datei cdk.context.json gibt es eine Angabe der Verfügbarkeitszonen. Wenn also "ap-northeast-1a" vorhanden ist, löschen Sie diese. Wenn nicht angegeben, fügen Sie den folgenden Inhalt hinzu.
cdk.out/cdk.context.json
"availability-zones:account=123456789999:region=ap-northeast-1": [
"ap-northeast-1b",
"ap-northeast-1c",
"ap-northeast-1d"
]
Ich war besorgt über 3 Stunden ... Es war schwer ... Ich kann immer noch nicht mit CDK auskommen.
Übrigens, wenn man sich gitignore ansieht, scheint es, dass cdk.context.json ignoriert wird, aber ich wäre dankbar, wenn ein weiser Mann, der weiß, wo man diese Einstellung schreibt, wirklich ist.
~ Ergänzung ~ Es wurde geschrieben, dass Sie es mit einem Befehl festlegen, in cdk.json schreiben oder im Quellcode ^ q ^ angeben sollten
- Through the --context option to the cdk command.
- In the context key of the project's cdk.json file.
- In the context key of a ~/cdk.json file.
- In code using the construct.node.setContext method.
https://docs.aws.amazon.com/cdk/latest/guide/context.html