amazon-ec2 - Terraform 应用失败 - InvalidUserData.Malformed:用户数据的 BASE64 编码无效
问题描述
问题:如何在cdktf中使用 base64encode Terraform 函数?
据我所知,这些Terraform 函数 尚不受支持。还是他们现在?
我的用例是“为 ec2 launchTemplate加载 BASE64 编码的 userData ”
当我尝试使用nodejs 方法做同样的事情时:
import { readFileSync } from 'fs';`
.
.
const userTemplate = readFileSync('./user_template.txt', {encoding: 'utf-8'});
.
.
const launchTemplate = new LaunchTemplate(this, "launchTemplate", {
.
.
userData: userTemplate,
.
它失败并出现此错误:
错误:InvalidUserData.Malformed:用户数据的 BASE64 编码无效。
有什么建议我可以使用 cdktf 将 userData 传递给 LaunchTemplate 吗?
解决方案
想通了这个问题。似乎readFileSync创建的对象根据您传递的内容返回缓冲区或字符串。当我像这样通过它时
const userTemplate = readFileSync('./user_template.txt', 'base64');
它返回以 base64 编码的字符串。这正是我所追求的。
推荐阅读
- javascript - 有条件的 API 处理?
- python - python 导出 Postgres 表 csv 绝对路径与相对路径复制到 \copy Ubuntu linux OS
- powershell - 使用具有不同开始时间的 powershell 在远程服务器中创建计划任务
- clojure - 克洛朱尔。在地图中使用动态名称关键字创建规范
- docker - 使用 docker 使用 linux 发行版 docker 映像测试 X 应用程序的最快速方法是什么?
- javascript - 检查选择日是否有事件
- php - 如何评估用户提供的代码?
- javascript - Reactjs - 创建手动 webGl 检查,因为 pixi 没有使用回退
- java - 如何导航到 src 中的 wav.file(用于在 java 中播放声音)
- angular - 如何在 Angular 8 中提交模板驱动表单时附加嵌套文件 ID?