Я реорганизовал некоторые фрагменты вашего кода, чтобы они выглядели намного проще, и использую async / await (убедитесь, что в качестве рабочей среды для вашей функции выбран Node 8.10) вместо обратных вызовов. Я также избавился от параметров context и callback, так как они использовались для более старых версий NodeJS. Как только вы используете Node 8+, async / await должен быть опцией по умолчанию.
Кроме того, можно связать .promise () с docClient.putItem, чтобы вы могли легко ожидать его, что упрощает ваш код. Я оставил только часть DynamoDB (которая имеет отношение к вашему вопросу)
'use strict';
console.log("Loading function");
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region:process.env.MOBILE_HUB_PROJECT_REGION});
exports.handler = async (event) => {
let params = {
Item:{
"prop0":1,
"prop2":"text"
},
TableName:"testTable"
};
try {
await docClient.put(params).promise();
} catch (e) {
console.log(e)
return {
messsage: e.message
}
}
return { message: 'Data inserted successfully' };
};
Что нужно иметь в виду, если она все еще не работает:
Убедитесь, что ваша лямбда-функция имеет необходимые разрешения для вставки элементов в DynamoDB (AmazonDynamoDBFullAccess сделает это)
Вы ВСЕГДА должны указывать ключ разделения при вставке элементов в DynamoDB. В вашем примере JSON имеет только два свойства: prop1 и prop2. Если ни один из них не является ключом раздела, ваш код непременно завершится неудачей.
Убедитесь, что ваша таблица также существует
Если код не работает, просто проверьте журналы CloudWatch, так как все исключения теперь регистрируются и выводятся на консоль.
Это установит один пиксель:
e.Graphics.FillRectangle(aBrush, x, y, 1, 1);
Объект Graphics
не имеет этого, поскольку он является абстракцией и может использоваться для Обложка векторный графический формат. В этом контексте установка одного пикселя не имеет смысла. Формат изображения Bitmap
имеет GetPixel ()
и SetPixel ()
, но не графический объект, построенный на нем. Для вашего сценария ваш вариант действительно кажется единственным, потому что не существует единого способа подбора одного пикселя для общего графического объекта (и вы точно не знаете, что это такое, как ваш элемент управления / форма). может быть двойной буферизацией и т. д.)
Зачем вам нужно установить один пиксель?
Видимо DrawLine рисует линию, которая на один пиксель меньше фактической указанной длины. Кажется, что нет DrawPoint / DrawPixel / whatnot, но вместо этого вы можете использовать DrawRectangle с шириной и высотой, равными 1, чтобы нарисовать один пиксель.
Там, где я рисую много отдельных пикселей (для различных пользовательских дисплеев данных), я склонен рисовать их в растровое изображение и затем перетаскиваем его на экран.
Операции BitPet GetPixel и SetPixel не особенно быстрые, потому что они выполняют очень много проверок границ, но довольно просто создать класс 'fast bitmap', который имеет быстрый доступ к растровому изображению ,