EC2实例终止删除EFS卷文件夹

我有一个WordPress站点的Elastic Beanstalk环境,configuration为使用上传文件夹的EFS卷,挂载并链接到实例创build(按照本指南进行设置)。 但是,当实例向上/向下扩展时,它会以某种方式删除EFS卷上的上传文件夹,这使我可以恢复预先制作的备份( 这个 – 未答复 -似乎是相关的)。

我的efs.config文件如下所示:

packages: yum: nfs-utils: [] jq: [] files: "/tmp/mount-efs.sh" : mode: "000755" content: | #!/usr/bin/env bash mkdir -p /mnt/efs EFS_NAME=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_NAME') mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME:/ /mnt/efs || true mkdir -p /mnt/efs/uploads chown webapp:webapp /mnt/efs/uploads commands: 01_mount: command: "/tmp/mount-efs.sh" container_commands: 00-mv-wp-content-uploads: command: rsync -a /var/app/ondeck/wp-content/uploads/ /mnt/efs/uploads/ 01-rm-wp-content-uploads: command: rm -rf /var/app/ondeck/wp-content/uploads 02-symlink-uploads: command: ln -snf /mnt/efs/uploads /var/app/ondeck/wp-content/uploads 03-chown-uploads: command: chown -h webapp:webapp /var/app/ondeck/wp-content/uploads 

基本上,我正在做的是:

移动部署的上传文件夹中的任何文件,删除该文件夹以将其replace为来自EFS的符号链接版本,并将其所有权更改为Apache用户。 看起来很简单,但是EFS文件夹正在被删除,并replace为已部署文件的任何内容。

我在容器命令下做错了什么?

作为上面提到的一个评论者的问题是,mount命令失败(在这种情况下,由于安全组configuration不正确)以及在屏蔽错误之后的“|| true”。

确保EC2实例的安全组允许所有端口(或至less将EFS的安全组设置为目标的NFS端口)上的出站通信,并且EFS的入站通信设置为允许NFS TCP端口。 一旦你这样做,mount命令应该成功,上面的说明应该工作。