に指定されていると、AWS CloudFormationに奇妙な問題が発生した場合、update-stackが失敗します。AWS CloudFormation:VolumeAttachmentが
私たちはいくつかのマシンの配置を自動化するためにCloudFormationを使用しています。私たちのCloudFormation ymlは、スタックの外側に作成された永続的なEBSボリュームを含む展開を記述しており、そのようなスタックを削除または再作成したくない(アプリケーションの状態が非常に多い)
関連CloudFormationのYMLスニペットがある:
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
ので、ルートデバイスは「一過性」である(スタックが更新されるたびに、そのようなボリュームが削除され、ユーザデータを再プロビジョニングされます)、/ながら、 dev/xvdmには永続データが含まれている必要があります。そのようなデバイスはユーザデータの最後にマウントされ、fstabに追加されます。
AWS own documentation後、私はVM内部から、このようなボリュームをアンマウントするスクリプトを作成し、私もEC2インスタンスから、このようなボリュームをdeattaching試してみました、のようなもの:私はアンマウントを確認した
${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}"
とは切り離しは成功する。
テンプレートとパラメータを使用して新しいスタックを作成すると成功します。私は、このエラーで
aws cloudformation update-stack --capabilities CAPABILITY_IAM --stack-name $STACK_NAME --template-body file://single_ec2_instance.yml --parameters file://$AWS_PARAMETERS_FILE
更新に失敗したが、起動まだ
そして、私は、このようなリソース内で何かを変更していないよにもかかわらず
Update to resource type AWS::EC2::VolumeAttachment is not supported.
。
どうしたのですか?どうすれば解決できますか?