实例启动时的 Amazon EC2 用户数据脚本 - python 脚本无法运行?

L X*_*dor 2 amazon-ec2 amazon-web-services

我正在关注有关启动时在 Linux 实例上运行命令 - Amazon Elastic Compute Cloud 的教程。

我有一个 EC2 实例,并且我已确认正在运行

python run.py
Run Code Online (Sandbox Code Playgroud)

当我通过命令行运行它时,它完全按照我想要的方式(将文件写入 s3)。所以在网络用户界面中我添加了

#!/bin/bash

python run.py
Run Code Online (Sandbox Code Playgroud)

进入用户数据字段。但是当我重新启动时什么也没有发生。我一定是忽略了某些东西,但不确定它是什么。

令我惊讶的一件事是,当我启动实例备份时,所有 python 包和脚本仍然存在,我以为所有内容都会被擦除,并且每次启动后我都必须从 s3 复制脚本。但我想这只是存储?就像我说的,我对此很陌生,所以任何帮助将不胜感激!

The*_*Guy 7

我们在使用用户数据脚本时通常会犯一个非常愚蠢的错误。我们忘记了它们是从 root 用户运行的。这意味着运行脚本时的当前目录将是用户“root”的主目录,而不是基于您的操作系统的 Ubuntu 用户或 ec2-user 的主目录。

这意味着如果您的命令成功运行,该文件可能位于相关的主位置。但是,用户数据脚本期望它位于不同的位置。尝试给出脚本的绝对路径,看看是否有效。