我想在 aws beanstalk 中更新我的 Laravel 项目,但问题是 aws elastic beanstalk 中的存储现在不同了,我想保留它,我不知道如何,因为我的项目包含一个存储文件夹,但它是空的,如果我更新它,我将丢失所有文件
我如何更新代码,但保留存储空间?
您的应用程序应该设计为无国籍的。原因是您的 EB 实例始终运行在弹性伸缩组 https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html.
这意味着它们可以被终止并且随时更换,在您不知情或不参与的情况下。有很多场景在这种情况下可能会发生。例如,可用区重新平衡、迁移到新的物理硬件、扩大和缩小活动或实例运行状况下降。
随后,无论您是否愿意,您始终面临丢失存储空间的风险。
因此,您的应用程序应该设计为无状态的,这意味着它不存储任何数据在实例上。这通常是通过将数据存储在外部存储(例如 EFS)中来实现的:
- 如何将 Amazon EFS 卷挂载到 Elastic Beanstalk 环境中的实例? https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-mount-efs-volumes/
但如果你还想保留您的设计,你可以随时使用.ebextentions
脚本来帮助您替换存储文件夹。具体来说,在Commands https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-commands您可以在新部署开始时将存储文件夹复制到安全位置。然后在容器命令 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-container-commands您可以在新部署完成之前将文件复制回新的应用程序文件夹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)