我有一个关于 Terraform 的小问题,但我在网上找不到解决方案。想象一下以下场景:
data "aws_vpc" "vpc_name" {
id = var.vpc_id
}
data "aws_subnet_ids" "vpc_subnets" {
vpc_id = data.aws_vpc.vpc_name.id
}
Run Code Online (Sandbox Code Playgroud)
想象一下我创建一个如下所示的 EC2 实例:
resource "aws_instance" "ec2_test" {
...
ami = ...
instance_type = ...
subnet_id = element(tolist(data.aws_subnet_ids.vpc_subnets.ids), 1)
...
Run Code Online (Sandbox Code Playgroud)
在子网中,我使用 element 函数选择了一个元素,并将子网 id 列表转换为列表。
现在,我有两个问题:
是否可以选择第一个子网而不进行列表转换(tolist)?我想知道为什么我可以做类似 data.aws_subnet_ids.vpc_subnets[1] 或类似的事情?
如何从子网列表中检索随机 ID?
问候,
谁能建议我如何自动挂载使用 Terraform 创建的 EBS 卷并使其可用/custom?
resource "aws_instance" "ec201" {\n...\n ebs_block_device {\n device_name = "/dev/sdd"\n volume_type = "gp2"\n volume_size = 10\n delete_on_termination = true\n encrypted = true\n }\n...\nRun Code Online (Sandbox Code Playgroud)\n可以自动挂载吗?
\n我已阅读这些页面:
\n当我做一个:
\n> lsblk\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\n...\nnvme1n1 259:0 0 10G 0 disk \nnvme0n1 259:1 0 250G 0 disk \n\xe2\x94\x94\xe2\x94\x80nvme0n1p1 259:2 0 250G 0 part /\nRun Code Online (Sandbox Code Playgroud)\n我有一个 10GB 分区未挂载。是否可以使用 terraform …
amazon-ec2 amazon-web-services terraform terraform-provider-aws
有人可以帮我调查 EC2 实例配置文件的问题吗?我创建了一个 EC2 实例并放置了一个 IAM 角色。但是,当我检查实例时,我看到:没有附加到实例配置文件的角色:xxx-instance-profile。
知道我必须去哪里看吗?因为,当我检查该实例配置文件(角色)时,我信任它:
可信实体 身份提供者 ec2.amazonaws.com
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我附上了一项权限策略 AmazonSSMManagedInstanceCore
当我转到我的实例时,我看到没有附加任何角色。而且,在 Systems Manager -> Session Manager 中,我看不到我的实例。
我不知道我做错了什么:(有什么建议吗?
问候,