Проверка резольвера в AWS AppSync с ключом API? - PullRequest
0 голосов
/ 09 января 2019

В настоящее время AWS AppSync предоставляет возможность добавить тестовый контекст для проверки вашего распознавателя, чтобы убедиться, что все правильно. Однако, поскольку я использую API-ключ для проверки подлинности, я не уверен, как это установить в шаблоне сопоставления запросов, чтобы можно было запустить контекст теста и проверить правильность моего API (тем более что это единственный Аут, который не имеет раздел идентичности в тестовом контексте)? Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 10 января 2019

Вы правы в том, что режим авторизации ключа API не заполняет идентичность, даже когда вы вызываете свой API с клиента.

Однако вы все равно можете добавить объект идентификации в свой тестовый контекст. Для этого вам необходимо:

  1. Получите режим авторизации, который вы будете использовать в будущем (IAM, Cognito, OIDC).
  2. Найдите поля, которые предоставляет режим авторизации, в ctx.identity. Вы можете найти это здесь: Справочник по контексту Resolver
  3. Добавьте эти поля в свой тестовый контекст. Например, контекст теста IAM может выглядеть следующим образом:

    { "личность": { "accountId": "мой аккаунт aws", "cognitoIdentityPoolId": "строка", "cognitoIdentityId": "строка", "sourceIp": ["string"], "имя пользователя": "строка", "userArn": "строка" }, «аргументы»: {}, "источник": { "лямбда": "Привет, мир!", "testCtx": "Привет, мир!" }, "result": "Привет, мир!" }

Шаблон отображения запроса может выглядеть следующим образом:

{
    "account: "$ctx.identity.accountId"
}

и шаблон сопоставления оцененного запроса будет выглядеть следующим образом, когда будет запущен ваш тестовый контекст:

{
    "account: "my aws account"
}

Примечание. Вы также можете просто переключить свой API в режим авторизации, который вы планируете использовать, а затем попробовать запросы как зарегистрированный пользователь.

...