[Bug]: Error: creating EC2 Spot Fleet Request: InvalidSpotFleetRequestConfig:

Terraform Core Version

v1.3.9

AWS Provider Version

v4.24.0

Affected Resource(s)

aws_spot_fleet_request

Relevant error:
Error: creating EC2 Spot Fleet Request: InvalidSpotFleetRequestConfig: The specified Subnet: subnet-XYZ cannot be used with the specified Availability Zone: us-east-1a. status code: 400

code:

resource “aws_launch_template” “test” {
instance_requirements {
allowed_instance_types = [
“c5.xlarge”,
“c6i.2xlarge”,
“t2.large”,
“t3.large”,
]
memory_mib {
max = 32768
min = 8192
}
vcpu_count {
max = 16
min = 4
}
}
network_interfaces {
subnet_id = aws_subnet.us-east-1a-private.id
}
placement {
availability_zone = “us-east-1a”
}
}

resource “aws_spot_fleet_request” “test1” {
iam_fleet_role = “arn:aws:iam::XXXXXXXXXX:role/aws-service-role/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet”
target_capacity = 0
launch_template_config {
launch_template_specification {
id = aws_launch_template.test.id
version = aws_launch_template.test.latest_version
}
}
}

inside the aws_launch_template block I have parameter called instance_requirements
If this is set we get the error as described above. If instead I comment that block out and use:
instance_type = “t2.large”
The provisioning is successful.

Please help me to fix this bug, i have requirement to launch instance via instance_requirements without using instance_type

made the suggested changes!!