Как вставить элементы в AWS DynamoDb с внешнего сайта - PullRequest
0 голосов
/ 21 марта 2020

Я бы хотел, чтобы внешний сайт (под моим контролем) вставлял элементы в мою AWS таблицу DynamoDb.

Я рассмотрел возможность использования AWS шлюза API с AWS Lambda, но я не знаете, как выполнить аутентификацию между внешним сервером и моим AWS размещенным приложением.

Похоже ли это на хороший подход? У вас есть другие подходы?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 марта 2020

Ваш подход звучит идеально для меня. Вы можете использовать API Gateway с Lambda-прокси для вставки записей в DynamoDB. Я думаю, что это очень распространенная архитектура. Вы можете увидеть пример здесь (https://www.youtube.com/watch?v=rRvy5Fbei1s) всякий раз, когда я ищу идеи об архитектурах ПО, используя AWS Я использую: https://aws.amazon.com/this-is-my-architecture

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

const AWS = require('aws-sdk');
const jwt = require('jsonwebtoken');

exports.handler = async (event) => {

    let token = jwt.decode(event.headers.Authorization);
    console.log("Token information: " + JSON.stringify(token));

    // You can also validate the JWT signature,
    // expiration time, sub etc..
    // and then perform the dynamoDB inserts...
};

надеюсь, это поможет

0 голосов
/ 21 марта 2020

Вы также можете использовать это: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Js.03.html Добавить свой заголовок, подобный этому:

X-API-KEY: PutRandomStringHere 

к вашему запросу, чтобы защитить ваш внешний сервер от неизвестного трафика c , В этом случае ваш внешний сервер - это API Gateway и Lambda. Затем ваш внешний сервер должен пройти аутентификацию на AWS с помощью комбинации AccessKeyId и SecretAccessKey. Видя поток?

...