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





Преимущество AWS в том, что, вероятно, существует конечная точка API для того, что вы ищете.
В этом случае вы можете получить доступ к списку преобразователей через конечную точку API ListResolvers, и вы можете получить определенный преобразователь через конечную точку API GetResolver.
Прежде чем идти дальше, я бы порекомендовал вам изучить управление ресурсами AppSync с помощью CloudFormation. Шаблоны CloudFormation можно легко сохранить в системе управления версиями.
Руководства по AppSync и CloudFormation:
https://read.acloud.guru/deploy-a-graphql-service-on-aws-with-the-serverless-framework-7af8fc22a01d
https://read.acloud.guru/deploy-an-aws-appsync-graphql-api-with-amazon-cloudformation-9a783fdd8491
Или, если ваши преобразователи не делают ничего особенного, вы можете использовать GraphQL Transformer от Amplify. Это позволяет вам аннотировать вашу схему и автоматически генерировать резолверы из аннотаций. Затем вы можете поместить аннотированную схему в систему управления версиями. Документация:
https://aws-amplify.github.io/docs/js/api#using-graphql-transformers
Спасибо за эту информацию. По ссылкам подробно описано, как вручную создавать файлы конфигурации. Есть ли способ вывести эти файлы из существующей конфигурации?
После того, как вы подключили резолверы в графическом интерфейсе, вы можете экспортировать их с помощью интерфейса командной строки. aws appsync list-resolvers --api-id <find-your-app-id-on-the-main-api-page-under-integration-with- your-app> --type-name Post <or- что угодно>
Для этого есть пакет 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
Это разумная гипотеза, и я ее тоже пробовал. Однако преобразователи по умолчанию не возвращаются, но очевидно, что они должны быть за кулисами, иначе API не будет работать. Это немного нестабильная область. Вау - еще более странно. Что вам нужно сделать, так это вручную подключить распознаватель для каждого поля типа. Таким образом, преобразователи по умолчанию отображаются в пользовательском интерфейсе, и после их присоединения вы можете их экспортировать. Но опять же, эти значения по умолчанию должны были присутствовать изначально. Это один из самых недоработанных сервисов AWS, с которыми мне приходилось иметь дело. С новыми хорошо работать;).