Источник данных для aws_vpc_endpoint_service_allowed_principal

Мне нужно проверить список aws_vpc_endpoint_service_allowed_principal из определенного aws_vpc_endpoint_service.

Источник данных aws_vpc_endpoint_service не возвращает список allowed_principals.

Кто-нибудь знает, как я могу получить эту информацию?

Помимо очевидного указания ссылки на атрибут ресурса, я предполагаю, что это нужно где-то еще? Если бы вы могли привести пример кода, который у вас есть, и сказать, где и как вы планируете его использовать, возможно, вы найдете способ ответить.

Marko E 14.12.2022 14:04

У нас есть служба endpoint_service с Allow_Principals для нескольких разных учетных записей. В основном мне нужно проверить, разрешена ли текущая учетная запись или нет, и продолжить эту информацию.

Leo 14.12.2022 14:08

Продолжить куда? Вам это нужно как выход? Поскольку вы упоминаете источник данных, он вам нужен в другом модуле? Другой аккаунт?

Marko E 14.12.2022 14:15

Если уже был создан allow_principal (вручную), terraform ничего не сделает. Если он не был добавлен, он добавит его.

Leo 14.12.2022 14:20

Извините, не хватает контекста. Без примера кода в вопросе очень сложно сказать, чего вы хотите достичь.

Marko E 14.12.2022 14:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вот пример скрипта (get_vpc_endpoint_service_permissions.sh), который извлекает необходимую информацию:

#!/bin/bash
sep=$(aws ec2 describe-vpc-endpoint-service-permissions --service-id vpce-svc-03d5ebb7d9579a2b3 --query 'AllowedPrincipals')
jq -n --arg sep "$sep" '{"sep":$sep}'

и вот как вы его потребляете в terraform:

data "external" "vpc_endpoint_service_permissions" {
  program = ["bash", "get_vpc_endpoint_service_permissions.sh"]
}

output "vpc_endpoint_service_permissions" {
  value = data.external.vpc_endpoint_service_permissions.result.sep
}

data.external.vpc_endpoint_service_permissions.result.sep содержит вывод скрипта bash, который представляет собой массив JSON, к которому вы можете обращаться/манипулировать по мере необходимости.

Спасибо! это действительно хорошая идея. Раньше я не использовал внешние источники данных.

Leo 14.12.2022 15:27

@ Лео Не за что. Я использую их всякий раз, когда мне нужно запросить что-то, что не поддерживается определенным источником данных, или когда источник данных вообще не существует.

Paolo 14.12.2022 15:30

Другие вопросы по теме