Как экспортировать резолверы AWS AppSync?

Я установил AppSync со схемой и преобразователями. Я могу экспортировать схему в файл, но не вижу, как экспортировать преобразователи.

Я хочу сохранить их в файле, чтобы иметь возможность контролировать их исходный код. Они содержат много кода SQL, который я не хочу терять.

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
0
2 022
4

Ответы 4

Преимущество AWS в том, что, вероятно, существует конечная точка API для того, что вы ищете.

В этом случае вы можете получить доступ к списку преобразователей через конечную точку API ListResolvers, и вы можете получить определенный преобразователь через конечную точку API GetResolver.

Это разумная гипотеза, и я ее тоже пробовал. Однако преобразователи по умолчанию не возвращаются, но очевидно, что они должны быть за кулисами, иначе API не будет работать. Это немного нестабильная область. Вау - еще более странно. Что вам нужно сделать, так это вручную подключить распознаватель для каждого поля типа. Таким образом, преобразователи по умолчанию отображаются в пользовательском интерфейсе, и после их присоединения вы можете их экспортировать. Но опять же, эти значения по умолчанию должны были присутствовать изначально. Это один из самых недоработанных сервисов AWS, с которыми мне приходилось иметь дело. С новыми хорошо работать;).

John Lockwood 02.05.2020 17:02

Прежде чем идти дальше, я бы порекомендовал вам изучить управление ресурсами AppSync с помощью CloudFormation. Шаблоны CloudFormation можно легко сохранить в системе управления версиями.

Руководства по AppSync и CloudFormation:

Или, если ваши преобразователи не делают ничего особенного, вы можете использовать GraphQL Transformer от Amplify. Это позволяет вам аннотировать вашу схему и автоматически генерировать резолверы из аннотаций. Затем вы можете поместить аннотированную схему в систему управления версиями. Документация:

https://aws-amplify.github.io/docs/js/api#using-graphql-transformers

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

brendangibson 20.11.2018 01:29

После того, как вы подключили резолверы в графическом интерфейсе, вы можете экспортировать их с помощью интерфейса командной строки. aws appsync list-resolvers --api-id <find-your-app-id-on-the-main-api-page-under-integration-with-‌ your-app> --type-name Post <or- что угодно>

John Lockwood 02.05.2020 17:10

Для этого есть пакет node.js: экспорт-appsync. Но в долгосрочной перспективе легче управлять исходным кодом для вашей схемы и преобразователей, которые вы работаете, либо из бессерверной инфраструктуры (serverless.com), либо из cloudformation, либо из инфраструктуры усиления AWS.

Шаблон команды: Значения TYPE_NAME: Мутация, Запрос и Подписка.

aws appsync list-resolvers --api-id YOUR_API_ID --type-name TYPE_NAME >> YOUR_FILE.txt

Примеры: с YOUR_API_ID = d5gebysm3 (исходная длина в моем случае 26)

aws appsync list-resolvers --api-id d5gebysm3 --type-name Mutation >> Mutation.txt
aws appsync list-resolvers --api-id d5gebysm3 --type-name Query >> Query.txt
aws appsync list-resolvers --api-id d5gebysm3 --type-name Subscription >> Subscription.txt

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