terraform - Terrafrom EMR Bootstrap Shell 文件
问题描述
我希望在 AWS EMR 的 Terrafrom 模块中执行一个 shell 文件,将文件传递给引导操作。但是文件没有加载。
调用该文件的代码块位于此处看到的 main.tf 文件中 -
bootstrap_action {
path = "${file("files/emr_bootstrap.sh")}"
name = "emr_bootstrap"
}
并且 main.tf 与“文件”目录处于同一级别。
错误消息是 -
ValidationException: Invalid bootstrap action path, must be a location in Amazon S3 or a local path starting with 'file:'.
任何想法/指针将不胜感激。
回复答案 1
谢谢亨利TK。我也试过这个没有成功,所以我认为问题是文件实际上并不存在于目标中。为了在 bootstrap_action 块之前克服这个问题,添加了一个文件复制块,如此处所示 -
provisioner "file" {
source = "files/emr_bootstrap.sh"
destination = "/tmp/emr_bootstrap.sh"
}
即使使用此文件配置器,shell 脚本也不会被执行,这意味着 bootstrap_action 没有找到 shell 脚本。
解决方案
所以使用 s3 你可以这样做:
bootstrap_action {
path = "s3://${var.bucket_name}/bootstrap/configure-system.sh"
name = "configure_system"
}
我猜在本地你会想要它:
bootstrap_action {
path = "file://<path>"
name = "configure_system"
}
让我知道这是否有帮助
推荐阅读
- domain-driven-design - 使用 Hexagonal Architecture 时添加专用端口有哪些缺点?
- android - TextView TextAllCaps 崩溃的应用程序
- python - pandas.to_datetime() 自动转换为
我有一个数据框,它被读取为包含格式为“YYYY-MM-DD”的日期的字符串。我已经使用 pd.to_datetime(带强制)将该列转换为日期时间,并且我打算使用 numpy.isnat() 在该列中搜索 NaT。
defaultDate = datetime.d
- sql - 如何通过检查同一表中另一条记录中的值来更新记录
- cmake - 我们如何使用 X-JFrog-Art-Api 下载 JFrog Artifacts?
- google-maps - 如何在 Shopify Atlantic 主题中将 Iframe 地图大小更改为全屏
- android - 如何通过按下它来更改按钮ID?
- spring - Spring Boot 2 执行器千分尺设置
- numpy - 如何从 IPython 打开在线参考?
- c++ - 如何使用 cout 在类中显示类中的值?