Sim*_*mon 7 amazon-ec2 amazon-ebs amazon-elastic-beanstalk
我正在将遗留应用程序迁移到Elastic Beanstalk.它需要持久存储(暂时).我想挂载一个EBS卷.
我希望以下内容适用于.ebextensions/ebs.config:
commands:
01mkdir:
command: "mkdir /data"
02mount:
command: "mount /dev/sdh /data"
option_settings:
- namespace: aws:autoscaling:launchconfiguration
option_name: BlockDeviceMappings
value: /dev/sdh=vol-XXXXX
Run Code Online (Sandbox Code Playgroud)
但不幸的是我收到以下错误"(vol-XXXX)参数snapshotId无效.预计:'snap -...'."
显然,此方法仅允许快照.任何人都可以建议修复或替代方法.
Sim*_*mon 10
我找到了解决方案.它可以通过删除"睡眠10"来改进,但不幸的是,这aws ec2 attach-volume是因为异步并且在附件发生之前立即返回.
container_commands:
01mount:
command: "aws ec2 attach-volume --volume-id vol-XXXXXX --instance-id $(curl -s http://169.254.169.254/latest/meta-data/instance-id) --device /dev/sdh"
ignoreErrors: true
02wait:
command: "sleep 10"
03mkdir:
command: "mkdir /data"
test: "[ ! -d /data ]"
04mount:
command: "mount /dev/sdh /data"
test: "! mountpoint -q /dev/sdh"
Run Code Online (Sandbox Code Playgroud)
注意.理想情况下,它将在commands部分中运行,container_commands但环境变量未及时设置.
小智 5
添加到@Simon 的答案中(以避免粗心的人陷入陷阱):
aws ec2 attach-volume命令就会失败。--region给aws ec2 ...命令(至少在撰写本文时)| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |