Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当terraform应用aws\U spot\U fleet\U请求时,如何检索专用ip地址?_Python_Amazon Web Services_Aws Sdk_Boto3_Terraform - Fatal编程技术网

Python 当terraform应用aws\U spot\U fleet\U请求时,如何检索专用ip地址?

Python 当terraform应用aws\U spot\U fleet\U请求时,如何检索专用ip地址?,python,amazon-web-services,aws-sdk,boto3,terraform,Python,Amazon Web Services,Aws Sdk,Boto3,Terraform,如果Terraform应用了6个EC2实例作为目标容量,如下所示: 唯一可用的属性是“id”和“spot\u request\u state” 如何输出已启动实例的专用IP地址 这是可能的还是我需要使用另一种工具,如Boto3?您可以在Terraform中使用数据源。这些允许您基本上执行API调用以从AWS检索数据。创建资源后,您可以使用以下地形- data "aws_instances" "spot-fleet-ips" { instance_tags { Name = "spot

如果Terraform应用了6个EC2实例作为目标容量,如下所示:

唯一可用的属性是“id”和“spot\u request\u state”

如何输出已启动实例的专用IP地址


这是可能的还是我需要使用另一种工具,如Boto3?

您可以在Terraform中使用
数据源。这些允许您基本上执行API调用以从AWS检索数据。创建资源后,您可以使用以下地形-

data "aws_instances" "spot-fleet-ips" {
  instance_tags {
    Name = "spot-fleet-example"
  }
}
要获得IP,您可以执行以下操作-

"${data.aws_instances.spot-fleet-ips.private_ips}"

上述数据源的文档是

不可能在terraform中获得Spot车队的实例

您需要在AWS SDK/boto3中编写代码来查找使用Spot fleet创建的实例。EC2自动缩放组和EMR集群的情况也是如此


谢谢。

idk关于terraform,但是您可以通过只描述“InstanceId”、“InstanceType”、“SpotInstanceRequestId”、“InstanceHealth”的文件请求更多信息。是的,但是通过使用实例ID描述实例请求很容易。我想您的意思是像tf文件中添加的那样?但是我得到了错误“data.aws_instances.spot-fleet-ips:您的查询没有返回任何结果”。data“aws_instances”“spot fleet ips”{instance_tags{Name=“spot fleet example”}output“sfleet请求的私有IP”{value=“${data.aws_instances.spot fleet ips.private_ips}}我想你是说像tf文件中添加的那样?但是我得到了错误“data.aws_instances.spot-fleet-ips:您的查询没有返回任何结果”代码“data”aws_instances“spot fleet ips”{instance_tags{Name=“spot fleet example”}output“sfleet请求的私有ips”{value=“${data.aws_instances.spot fleet ips.private_ips}”code“在运行时是否使用数据源创建了实例?”?由于实例需要已创建并具有与之关联的专用ip,否则,您需要在创建它们时运行数据源。
"${data.aws_instances.spot-fleet-ips.private_ips}"