0

angegeben ist, wir stoßen auf ein seltsames Problem mit AWS CloudFormation.AWS CloudFormation: update-stack schlägt fehl, wenn VolumeAttachment

Wir verwenden CloudFormation, um den Einsatz einiger unserer Maschinen zu automatisieren; Unser CloudFormation-YML beschreibt die Bereitstellung, die ein persistentes EBS-Volume enthält, das außerhalb des Stapels erstellt wurde, und wir möchten diesen Stack nicht entfernen oder neu erstellen (er enthält eine Menge des Status unserer Anwendung).

Die relevante Cloudformation yml Schnipsel sind:

DataVolumeAttachment01: Type: AWS::EC2::VolumeAttachment Properties: Device: "/dev/xvdm" InstanceId: !Ref EC2Instance01 VolumeId: !Ref DataVolumeId EC2Instance01: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-6f587e1c" KeyName: !Ref "KeyName" InstanceType: !Ref "InstanceType" BlockDeviceMappings: # Root device - DeviceName: "/dev/sda1" Ebs: VolumeType: "gp2" DeleteOnTermination: "true" VolumeSize: 20

So, das Root-Gerät ist "transient" (jedes Mal, wenn der Stapel aktualisiert wird, wie Volumen gelöscht und wird mit Userdaten reprovisioned), während/dev/xvdm sollte unsere persistenten Daten enthalten; Ein solches Gerät wird am Ende der Benutzerdaten bereitgestellt und zu fstab hinzugefügt.

Nach AWS own documentation, ich ein Skript erstellt, das aus dem Inneren des VM solche Volumen unmounts, und ich habe sogar versucht, solche Volumen aus dem EC2 Instanz deattaching, so etwas wie:

${SSH_CMD} "cd /home/application && application stop && sudo umount /data && echo data volume unmounted" echo "detaching data volume" VOLID=$(aws ec2 describe-volumes --filters Name=tag-key,Values="Name" Name=tag-value,Values=persistent-volume --query 'Volumes[*].{ID:VolumeId}' --output text) aws ec2 detach-volume --volume-id "${VOLID}"

Ich habe das umount prüft und die Trennung gelingt.

Die Erstellung eines neuen Stacks mit meiner Vorlage und Parametern ist erfolgreich.

Und doch, wenn ich

aws cloudformation update-stack --capabilities CAPABILITY_IAM --stack-name $STACK_NAME --template-body file://single_ec2_instance.yml --parameters file://$AWS_PARAMETERS_FILE

starten Das Update fehlschlägt, mit diesem Fehler:

Update to resource type AWS::EC2::VolumeAttachment is not supported.

Auch wenn ich nicht innerhalb einer solchen Ressource etwas zu ändern bin.

Was ist los? Wie kann ich Probleme lösen oder umgehen?

Antwort

0

Es scheint, dass die Sache kein Problem war.

Entweder CloudFormation wird durch die verbrauchten t2-CPU-Credits beeinflusst (die wir ausgeschöpft hatten, wir versuchten den Instanzentyp aus genau diesem Grund zu ändern, um m3 oder m4 zu verwenden) oder wir hatten einen schlechten Tag für EC2/CloudFormation Irland. Heute, mit der gleichen genauen Konfiguration, ist jedes Update erfolgreich.

Verwandte Themen