通过用户数据方法将文件从 S3 复制到 EC2

dan*_*tar 2 amazon-s3 amazon-ec2 amazon-web-services user-data

我一直在寻找这个任务的解决方案,我发现所有我不想要的 CLI 方法。

我只是想要:

我有一个 S3 Bucket,其中有一个私有文件,文件可以是图像/zip 文件任何内容。

我希望当我启动任何 EC2 实例时,它应该将该文件从 S3 存储桶带到 EC2 实例目录。

为此,我只想使用 EC2 用户数据方法。

Joh*_*ein 6

Amazon EC2 中的用户数据字段将信息传递到实例上运行的应用程序可访问的信息。

使用 Amazon 提供的 AMI(例如 Amazon Linux 2)启动的 Amazon EC2 实例包含一个名为 Cloud-Init 的程序,该程序查看用户数据,如果提供了脚本,则在实例首次启动时运行该脚本。

因此,您可以配置一个脚本(通过用户数据传递),该脚本将在实例首次启动时运行。该脚本将以用户身份运行root。您的脚本可以使用AWS 命令​​行界面 (CLI)从 Amazon S3 复制文件,如下所示:

#!
aws s3 cp s3://my-bucket/foo.txt /home/ec2-user/foo.txt
chown ec2-user foo.txt
Run Code Online (Sandbox Code Playgroud)

请注意,您需要将 IAM 角色分配给有权访问存储桶的实例。AWS CLI 将使用这些权限进行文件复制。

您提到您不希望使用 AWS CLI。相反,您可以使用首选编程语言(例如 Python)编写一个调用 Amazon S3 API 的程序,但使用 CLI 更简单。

  • @马克谢谢!我以为我查了语法,但我必须得到它 sdrawkcab! (2认同)