Как настроить Apollo Gateway с управляемой федерацией? - PullRequest
1 голос
/ 05 ноября 2019

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

  1. Что означает это первое предупреждение? Является ли это сообщение нормальным и ожидаемым, если нет доступных обновлений схемы?

  2. Почему схема GraphQL не определена даже после того, как apollo-server sais Шлюз успешно загрузил схему. ?

Я знаю этот вид противоречивого вывода из других случаев, когда обещание не разрешается до того, как оно передается другой функции или конструктору. Должен ли я каким-то образом ждать ApolloGateway, чтобы получить все службы, прежде чем передать его ApolloServer? Как мне лучше всего это сделать?

[WARN] Tue Nov 05 2019 12:58:26 GMT+0100 (GMT+01:00) apollo-gateway: Error checking for schema updates. Falling back to existing schema. Error: When `serviceList` is not set, an Apollo Engine configuration must be provided. See https://www.apollographql.com/docs/apollo-server/federation/managed-federation/ for more information.
    at ApolloGateway.<anonymous> (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\src\index.ts:464:13)
    at Generator.next (<anonymous>)
    at e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\dist\index.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\dist\index.js:4:12)
    at ApolloGateway.loadServiceDefinitions (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\dist\index.js:260:16)
    at ApolloGateway.<anonymous> (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\src\index.ts:285:27)
    at Generator.next (<anonymous>)
    at e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\@apollo\gateway\dist\index.js:8:71
    at new Promise (<anonymous>)
[INFO] Tue Nov 05 2019 12:58:26 GMT+0100 (GMT+01:00) apollo-gateway: Gateway successfully loaded schema.
        * Mode: managed
�? Server ready at http://localhost:4000/
(node:9836) UnhandledPromiseRejectionWarning: Error: Expected undefined to be a GraphQL schema.
    at assertSchema (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\type\schema.js:41:11)
    at validateSchema (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\type\validate.js:44:28)
    at assertValidSchema (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\type\validate.js:68:16)
    at assertValidExecutionArguments (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\execution\execute.js:136:35)
    at executeImpl (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\execution\execute.js:86:3)
    at Object.execute (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\graphql\execution\execute.js:64:63)
    at Object.generateSchemaHash (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\apollo-server-core\src\utils\schemaHash.ts:11:18)
    at ApolloServer.generateSchemaDerivedData (e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\apollo-server-core\src\ApolloServer.ts:486:24)
    at e:\OneDrive\Dokumente\Projekte\BLEND-LMS\server\API\node_modules\apollo-server-core\src\ApolloServer.ts:366:14
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
(node:9836) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:9836) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.      
(node:9836) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 2)
...