EC2 用户数据在 S3 中复制过时版本的文件?

EC2 User Data copying outdated version of a file in S3?

所以,我正在尝试在 EC2 实例中设置 Jenkins 服务器并使用 CasC。我创建了一个 S3 存储桶来存储 CasC 配置,并设置了一个用户数据脚本来将该配置复制到特定路径中。 用户数据脚本的第一个 运行 一切顺利,文件被复制到正确的路径。但是,当我上传文件的新版本并重新启动 EC2 实例时,aws cli 似乎正在复制旧版本,无论之后我重新启动实例多少次。 这是我的用户数据脚本:

#! /bin/bash
sudo su -
yum update -y
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins java-1.8.0-openjdk-devel -y
systemctl daemon-reload

systemctl stop jenkins

aws s3 cp s3://jenkins-casc/jenkins.yaml /var/lib/jenkins/

systemctl start jenkins

下面是复制命令的 cloud-init 输出:

download: s3://jenkins-casc/jenkins.yaml to var/lib/jenkins/jenkins.yaml

用户数据脚本仅在实例“首次启动”时执行。 (实际上,它是“给定实例 ID 的首次启动”。)

如果您希望脚本在 每次 启动时执行,请将其放在此目录中:

/var/lib/cloud/scripts/per-boot/

这是cloud-init的功能。