Это мой первый раз с AWS, я настроил таблицу DynamoDB, а также создал лямбда-функции для выполнения CRUD-операций, сначала я сделал функции stati c. Затем я приступил к созданию методов API Gateway для динамического доступа к функциям Lambda.
Метод, который я пытаюсь вызвать, является методом GET, его следует вызывать с использованием JS и из другого домена, который мне нужен. чтобы включить CORS, к сожалению, даже после того, как он у меня есть в заголовке моей лямбда-функции, он дает мне ошибку CORS:
'use strict';
const AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-2' });
exports.handler = async (event, context) => {
const ddb = new AWS.DynamoDB({ apiVersion: '2012-10-08' });
const documentClient = new AWS.DynamoDB.DocumentClient({ region: 'us-east-2' });
let responseBody = "";
let statusCode = 0;
var params = {
TableName: "Users",
};
// scan is a function, that is like the SELECT .. WHERE .. clause in SQL
try{
const data = await documentClient.scan(params).promise();
responseBody = JSON.stringify(data.Items);
statusCode = 200;
}catch(err) {
responseBody = `Unable to Scan Users, error: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"access-control-allow-origin": "*"
},
body: {
responseBody
}
};
return response;
};
Это код, который у меня есть в VueJS приложении, которое должно сделать запрос метод GET в API Gateway:
try{
const res = await axios.get("https://here-goes-my-url");
console.log(res.data);
} catch (err){
console.log(err);
}
Вот ошибка, которую я получаю:
Access to XMLHttpRequest at 'https://here-goes-the-url' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Лямбда-метод GET должен возвращать все элементы в таблице «Пользователи». Пожалуйста, помогите, спасибо!