Как создать AWS VPC по умолчанию, используя terraform?

Это возможно сделать с коллектором, который затем создает новый поток:

class Accumulator {
    public static void accept(List<Integer> list, Integer value) {
        list.add(value + (list.isEmpty() ? 0 : list.get(list.size() - 1)));
    }

    public static List<Integer> combine(List<Integer> list1, List<Integer> list2) {
        int total = list1.get(list1.size() - 1);
        list2.stream().map(n -> n + total).forEach(list1::add);
        return list1;
    }
}

Это используется как:

myIntStream.parallel()
    .collect(ArrayList<Integer>::new, Accumulator::accept, Accumulator::combine)
    .stream();

Надеюсь, вы увидите, что важный атрибут этого коллектора заключается в том, что даже если поток параллелен, когда экземпляры Accumulator объединены, он корректирует итоговые значения.

Это, очевидно, не так эффективно, как операция карты, потому что он собирает весь поток и затем создает новый поток. Но это не просто деталь реализации: это необходимая функция того, что потоки предназначены для потенциальной параллельной обработки.

Я протестировал ее с помощью IntStream.range(0, 10000).parallel(), и она функционирует правильно.

1
задан NarūnasK 16 January 2019 в 12:14
поделиться

1 ответ

Нет, похоже, что вы не можете через TF, вы можете принять существующий VPC по умолчанию, но не создавать его: https://www.terraform.io/docs/providers/aws/r/default_vpc.html .

Так что используйте AWS cli, чтобы воссоздать его (если можете), а затем используйте этого нового провайдера, чтобы принять его.

0
ответ дан James Woolfenden 16 January 2019 в 12:14
поделиться