我正在编写 Go terratest 脚本来验证 AWS EC2 实例的 SSH 连接
我的本地已经有 AWS EC2 密钥对 PEM 文件
我能够使用 terraform.TgApplyAll() 和 terraform.TgDestroyAll() 方法启动和销毁 EC2 实例,并使用 terraform.Output() 方法获取输出变量
我的本地 AWS EC2 密钥对 PEM 文件用于在 AWS 中创建 EC2 实例
现在我正在尝试从 terratest Go 脚本以编程方式验证 SSH 连接。
我无法将本地 AWS EC2 密钥对加载 到 Go terratest 脚本中的sshKeyPair变量
我使用了下面的代码片段但没有用
我还尝试了 https://github.com/gruntwork-io/terratest/blob/907c09f0696083a5ada580debb66bb5c00c19c32/modules/test-structure/save_test_data.go#L66中的脚本 来使用 LoadEc2KeyPair 加载我的本地 EC2 密钥对并使用测试 EC2 SSH fmt.Sprintf("SSH to public host %s", publicIP)但是在json.Unmarshal(bytes, value)的LoadTestData(t testing.TestingT, path string, value interface{})方法中 从本地读取 EC2 密钥对时出错内置调用
错误消息:无法为值 D:\AWS\KeyPair\pandukeypair.pem 解析 JSON:数字文字中的无效字符 '-' 当我尝试读取 .pem 文件并且代码尝试执行 json 时,我收到此错误。 .pem 文件上的元帅
github/terratest 模块中可用的所有代码片段都讨论了创建新的密钥对和加载 AWS EC2 JSON密钥对,但我没有得到任何方法/逻辑,因为我的场景已经存在现有的密钥对 JSON,我只想加载和使用它。
完整代码在下面的链接中
https://www.dropbox.com/sh/dl2mpesidsxitdu/AAAOi4Nmp41CHMSPcyU7a2qva?dl=0