amazon-web-services - 在创建 EC2 期间将 Terraform 实例属性引用到用户数据
问题描述
如何将资源的public_dns
值传递给该部分?aws_instance
user_data
resource "aws_instance" "app_server" {
ami = "ami-04ad2567c9e3d7893"
instance_type = "t2.micro"
vpc_security_group_ids = [aws_security_group.web-sg.name]
user_data = <<-EOF
#!/bin/bash
sudo su
echo "<p> The Public DNS of instance: ${self.app_server.public_dns} </p>" >> index.html
python -m SimpleHTTPServer 80
EOF
tags = {
Name = "web_instance"
}
}
我尝试使用self
或使用aws_instance.app_server.public_dns
声明,但没有一个可以解决以下错误。
解决方案
公共 dns 将在实例启动后可用。无法在用户数据中引用它。您可以使用以下命令阅读它:
curl http://169.254.169.254/latest/meta-data/public-hostname
推荐阅读
- javascript - this 没有 new 关键字
- c++ - 我可以将 void* 转换为 unique_ptr 吗?
- javascript - Node JS 服务器,无法获取 index.html
- mysql - 使用group by function时选择特定的id [MySQL]
- kdb - 使用设置窗口计算 2 个列表的加权移动平均值
- python - 在 python 类中引用整数作为静态变量
- c# - Asp.net core 返回 View 或 Json/XML 的最干净方式
- javascript - 点击跟踪的高阶 React 组件
- r - 如何为数据框中的所有分类变量制作频率表?
- javascript - php curl 使用 html 下拉选择填充变量