Вопросы с тегами [aws-lambda]

1

голосов
0

ответ
9

Просмотры

putBotAlias ​​не работает в AWS LexModelBuildingService node.js

Я пытался заменить существующий LexBot псевдоним (названный позднее) с вновь созданной версией бота. Теперь, согласно AWS документации Если вы хотите обновить бот псевдоним, установите в поле контрольной суммы с контрольной суммой самого последнего пересмотра $ последней версии. Я могу видеть Алиас Последняя является использование бота версии 12 в Lex консоли. Я пытался получать контрольную сумму с помощью следующего (я использую GetBot (...) от LexModelBuildingService получить контрольную сумму бота): использование самого имени псевдонима в качестве версии т.е. ПОСЛЕДНЕЙ. установка versionOrAlias ​​в методе GetBot Params как «$ ПОСЛЕДНИЕ». Жестко прописывать версию до 12 дюймов GetBot (..). Я использовал контрольную сумму из приведенных выше сценариев, но ошибка, кажется, так же, как PreconditionFailedException: Значение контрольной суммы не совпадает для ресурса с именем «Последним». Вот' Фрагмент кода с асинхронной putBotAlias ​​(botVersionResponse) {пусть контрольной суммы; . Ждет this.getBot (botVersionResponse.name, '12' ), а затем (botRes => {// использовал 12, Последний, $ Последней с console.log же ошибок ( "контрольной суммой Последний:" + botRes.checksum); контрольная сумма = botRes.checksum;}); вар PARAMS = {ИМЯ_БОТА: botVersionResponse.name, botVersion: (ParseInt (botVersionResponse.version, 10)) ToString (), название: 'Последняя', контрольная сумма: контрольная сумма.}; // Контрольная сумма: Контрольная сумма console.log ( "Params в putBotAlias:" + JSON.stringify (PARAMS)); вернуть новый посыл ((решительность, отклонять) => {this.modelBuildingService.putBotAlias ​​(PARAMS, функция (эээ, данные) {если (ERR) {отвергнуть (ERR); } // ошибка произошла еще {console.log ( "Поместите псевдоним Response :::" + JSON.stringify (данные)); разрешения (данные); } // успешного ответа}); }); } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях. } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях. } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях.
Salim Shamim
1

голосов
2

ответ
501

Просмотры

Amazon Lambda список запущенных функций

Как я могу проверить запущенные функции лямбда-управлением с помощью AWS консоли? Кажется, что нет команды, чтобы проверить это: AWS лямбда-XXXX я несколько сценариев запуска, и я хотел бы, чтобы контролировать ситуацию. Достаточно показать, как много функций работают. Спасибо
J.R.
1

голосов
1

ответ
38

Просмотры

Как читать AWS Cognito пользовательские атрибуты и вошедшего пользователя в лямбда

Я создал пользовательские атрибуты внутри АМС congnito пула, теперь добавления сообщения аутентификации лямбда и внутри лямбда хочет читать «пользовательские атрибуты» и LoggedIn имя пользователя. Внутри Node.js лямбда: Var электронной почты = event.request.userAttributes.email; вар RefNumber = event.request.userAttributes.ref_number; // пользовательский атрибут вар LoginID = event.request.userAttributes.username; // LoggedIn идентификатор в Cognito я могу принести электронный идентификатор правильно, однако и LoggedIn имя пользователя и пользовательский атрибут приходит неопределенными.
vaquar khan
1

голосов
0

ответ
3

Просмотры

Использование AWS API шлюза + Lambda без него становится Dependency

Там нет сомнений в преимуществах API Gatway + Lambda для микро-услуг. Меня беспокоит то, что произойдет, если мы решим, отъезжать API шлюза + Lambda для ECS / Fargate, или даже другой Cloud. Там, как представляется, консенсус по вопросу использования одной функции Lambda для каждого маршрута / действий. У меня есть несколько теорий о том, как разработать с помощью этого подхода, так что код может быть отсоединен от лямбда и вставленным в некоторых где-то еще. Я также хотел бы знать, что другие в обществе сделали для достижения этой цели? Кто-нибудь пытался переместить API от Lambda и смог успешно сделать это, используя дизайн XXXX? Какие уроки там? Язык не имеет никакого значения для этого обсуждения, но мы используем python3
Sam Hammamy
0

голосов
0

ответ
4

Просмотры

Использование Python Boto3 AWS Lambda, S3 Key LastModified возвращается в двух типов для двух различных способов

LastModified из данного ключа возвращается в двух различных форматах. Если хранить в переменной или непосредственно печати, он дает мне этот формат: 2019-04-17 11: 14: 11 + 00: 00 И если я пытаюсь сохранить его в качестве значения в Словаре, а затем распечатать его, он показывает в этом формате: { 'redshift_data_source / сетки / load.csv': datetime.datetime (2019, 4, 17, 11, 14, 11, tzinfo = tzlocal ())} Почему такое различие в форматах? Во-вторых, моя цель состоит в том, чтобы сохранить LastModified в файл и проверить каждый день, если LastModified файла изменилось или нет. Как я могу сделать это без загрузки .zip дополнительных библиотек? Я хочу что-то вроде этого (где должны поступать из файла, который я храню метаданные и б должны быть метаданные последней версии файла читать: а = datetime.datetime (2019, 4, 17, 11, 14, 11, tzinfo = tzlocal ( )) # вчера Ъ = datetime.datetime (2019, 4, 18, 05, 53, 19,
Aakash Basu
1

голосов
2

ответ
592

Просмотры

AWS лямбда не конвертировать JSon запрос в POJO

У меня есть лямбда-функции: пакет org.smarter.note; импорт com.amazonaws.services.lambda.runtime.Context; импорт com.amazonaws.services.lambda.runtime.LambdaLogger; импорт com.amazonaws.services.lambda.runtime.RequestHandler; общественный класс AddNoteRequestHandler реализует RequestHandler {частного NoteRepository заметки; частный LambdaLogger регистратор; @Override общественных Примечание handleRequest (NewNoteRequest newNote, контекст Контекст) {INIT (контекст); журнал ( "создание заметки:" + newNote.toJson ()); notes.create (newNote); вернуть новое примечание (); } Частный журнал недействительным (String сообщение) {Logger.log (string.Format ( "% s \ п", сообщение)); } Частная недействительными инициализации (контекст контекста) {this.logger = context.getLogger (); this.notes = новый NoteRepository (); }} Затем, когда я тестирование лямбды с помощью Сэма локального и отправить запрос: { «название»: «привет», «содержание»: «тело»} Я ожидал JSON преобразованы в NewNoteRequest автоматически, но это не так , вот лог: Теперь вы можете просматривать на указанном выше конечные точки для вызова своих функций. Вам не нужно перезапустить / перезагрузить SAM CLI во время работы на ваших функций, изменения будут отражены мгновенно / автоматически. Вам нужно только перезапустить SAM CLI, если вы обновляете шаблон AWS SAM. 2017/12/28 11:06:57 Вызов org.smarter.note.AddNoteRequestHandler (java8) 2017/12/28 11:06:57 Декомпрессия /Work/smarter-serverless/build/distributions/smarter-serverless.zip 2017 / 12/28 11:06:57 Монтаж / частный / вар / папки / г.в. / m43y5g9x1xdc9f2kc2p0kpz00000gp / T / AWS-сэм-местном 1514430417742696978 в / вар / задачи: ро внутри контейнера во время выполнения СНВ RequestID: bf0f77d3-198d-4211-ab9e-4c85a7c5de22 Версия: $ Последняя Создание Примечание: {название = нуль, содержание = NULL} мой сэм локальный шаблон: AWSTemplateFormatVersion: '2010-09-09' Transform: AWS: : бессерверные-2016-10-31 Ресурсы: Заметки: Тип: AWS :: Serverless :: Функциональные свойства: Handler: org.smarter.note.AddNoteRequestHandler CodeUri: ./build/distributions/smarter-serverless.zip Runtime: java8 Событие: PostEvent: Тип: Api Свойство: Путь: / примечание Метод: сообщение The POJO: пакет org.smarter.note; импорт com.amazonaws.services.dynamodbv2.document.Item; импорт java.util.HashMap; импорт java.util.Map; Класс NewNoteRequest реализует DynamoDBItem, JSon {личное название String; частное содержание строк; Строка GetTitle общественности () {возвращение название; } Общественного недействительными SetTitle (строка заголовка) {this.title = название; } Строка общественного getContent () {содержание возврата; } Общественного недействительными setContent (содержание String) {this.content = содержание; } @Override пункт общественного товара () {вернуть новый товар () .withString ( "название", this.title) .withString ( "содержание", this.content); } @Override общественности Карта toJson () {HashMap = новый JSON HashMap (); json.put ( "название", this.title); json.put ( "содержание", this.content); вернуть JSON; }} Также зависимостей: Зависимости {компилировать ( "com.amazonaws: AWS-лямбда-Java-ядро: 1.1.0", «com.amazonaws:
Jakim
1

голосов
2

ответ
53

Просмотры

Create a response for invalid and incomplete end points using the Serverless Framework?

У меня есть ряд HTTP конечных точек, которые связаны с лямбда-функции, которые поражают подробную информацию следующим образом: продукты / 1 пользователей / 1 пакет / 998134 Существует не соответствующая конечная точка для продуктов /, пользователи / или пакет /. У меня есть пользовательский Authorizer вокруг пользователей / {ID} и пакет / {ID} конечных точек. Если пользователь переходит на пользователей / или пакетов / с использованием GET они получают { «сообщение»: «Отсутствует аутентификация Токен»}. Если они попали эти конечные точки с POST (правильный вариант для моей конечной точки, если они должны были также передать идентификатор) они получают { «сообщение»:. «Заголовок авторизации требует заголовок„CREDENTIAL“параметр авторизации требует параметр„Signature“заголовок авторизации. требует заголовка параметра. Authorization «SignedHeaders» требует наличия либо «X-Дигг-Date» или заголовок «Date». } Есть ли способ, чтобы настроить любого из этих сообщений? Моя первая мысль была просто создать что связанные конечные точки: GET / пользователи POST / GET продукты / POST продукты / GET пакет / пакет POST Но это быстро получает быть много работы, потому что у меня больше, чем три из этих конечных точек для делать. Я также должен включать DELETE и PUT на некоторых из них. Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users} } Есть ли способ, чтобы настроить любого из этих сообщений? Моя первая мысль была просто создать что связанные конечные точки: GET / пользователи POST / GET продукты / POST продукты / GET пакет / пакет POST Но это быстро получает быть много работы, потому что у меня больше, чем три из этих конечных точек для делать. Я также должен включать DELETE и PUT на некоторых из них. Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users} GET / пользователей POST / GET / POST продукты продукты / GET пакет / пакет POST Но это быстро получает быть много работы, потому что у меня есть более чем три из этих конечных точек, чтобы сделать. Я также должен включать DELETE и PUT на некоторых из них. Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users} GET / пользователей POST / GET / POST продукты продукты / GET пакет / пакет POST Но это быстро получает быть много работы, потому что у меня есть более чем три из этих конечных точек, чтобы сделать. Я также должен включать DELETE и PUT на некоторых из них. Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users} Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users} Могу ли я легко создать ответ на неверные или неполные конечные точки? Мой serverless.yml имеет определение выглядеть следующим образом: в настоящее время show_user: обработчик: пользователи / show_users.return_user события: - HTTP: путь: пользователи / {идентификатор} Метод: получить CORS: истинный update_user: обработчик: пользователи / update_user.update_user событие: - HTTP: путь: пользователи / {ID} метод: почтовые CORS: истинный доверитель: $ {самоуправления: custom.authorizer.users}
Serverless Qs
1

голосов
0

ответ
231

Просмотры

AWS SAM Локальная служба доступа на хост с функцией Lambda

Я тестирование функции лямбда с помощью SAM Local. Функция взывает к REST API. Локально У меня есть макет служба отдыха для тестирования на вызов. Для подключения я в настоящее время с помощью IP-адрес хоста в функции лямбды. Это работает, пока мой IP изменение или кто-то другие пытается запустить функцию. Я хотел бы передать адрес хоста / IP для функции Lambda, используя переменную окружения. Это должно быть довольно легко сделать после развертывания, но я не нашел хороший способ установить это в моем местном шаблоне. Есть хороший способ установить это?
user1686620
1

голосов
1

ответ
856

Просмотры

Можно ли интегрировать firebase аутентификацию с AWS лямбда

Я использую рамки Serverless (AWS лямбда-функции), но я хочу, чтобы аутентификация быть сделано firebase. Можно ли интегрировать это два?
Annie Alan
1

голосов
0

ответ
575

Просмотры

aws Lambda Deployment automation using git,codepipeline,codebuild and cloudformation

Я Создание CI CD трубопровода / для развертывания лямбды, я использую Git-> Codebuild-> AWS cloudfromation-> лямбда с помощью codepipline, даже после успешного построения моего buildspec.yaml не в состоянии произвести надлежащую samTemplate, содержащей собственно CodeUri, и я получаю сообщение об ошибке Невозможно загрузить артефакт ./, на который ссылается параметр CodeUri из HelloFunction ресурса. Произошла ошибка (AccessDenied) при вызове операции CreateMultipartUpload: Access Denied это моя версия buildspec.yaml: 0.2 фазы: post_build: команды: - эхо Строить завершенные на `date` - МВН чистого пакета - AWS CloudFormation пакет --template-файл samTemplate.yaml --s3 ведро --output-шаблон NewSamTemplate.yaml артефактов: Тип: баночки файлы: - NewSamTemplate.yaml и это мой samTemplate.yaml AWSTemplateFormatVersion: '2010-09-09' Transform: AWS ::
Mayur
1

голосов
1

ответ
388

Просмотры

Построение общих файлов с бессерверной машинопись плагин

Я использую амазонка лямбда AWS с бессерверную и безсерверной-плагин-машинописи строить свои машинопись файлы. Я общий код в моем проекте, например, структура папок, как это: / Shared: shared1.ts, shared2.ts / microservice1: microservice1.ts, serverless.yml / microservice2: microservice2.ts: serverless.yml Согласно тому, что я прочитал это не представляется возможным передать файл YAML через командную строку в бессерверной развертывании. Таким образом, текущий рабочий каталог должен находиться внутри «/ microservice1» или «/ microservice2». Это приводит не будучи в состоянии построить следующую ошибку: «File» ... shared1.ts' не под „ROOTDIR“»... microservice1' . «ROOTDIR», как ожидается, будет содержать все исходные файлы. Я также не могу установить ROOTDIR в tsconfig.json на «../», так как он переписывается по умолчанию «./» , Таким образом, только работа вокруг я вижу, работать с симлинками, который является IMHO немного Hacky. Так есть возможность построить эти общие файлы без использования символических ссылок?
josh
1

голосов
4

ответ
1.6k

Просмотры

How to use param passing in Lambda / API Gateway

I am trying to build an API using API Gateway, Lambda, and RDS. So you type in the URL and get the specific rows from RDS back in a JSON format. So this is what I would like to achieve. /production/myfootballapi?table=football -> all rows in the table should be returned (not working) /production/myfootballapi?table=football&id=2 -> only the id 2 row should be returned (only this case works) The main problem that I am having is that I currently can't show all rows because I always have to define the id otherwise an error occurs. My API Gateway Body Mapping Template: { "table" : "$input.params('table')", "id" : $input.params('id') } My Lambda function var mysql = require('mysql2'); var config = require('./config.json'); var pool = mysql.createPool({ host : config.dbhost, user : config.dbuser, password : config.dbpassword, database : config.dbname, }); exports.handler = (event, context, callback) => { //prevent timeout from waiting event loop context.callbackWaitsForEmptyEventLoop = false; pool.getConnection(function(err, connection) { if (err) throw err; // Use the connection var table = event.table; var id = event.id; // This if-function is just a try to solve this problem but it doesn't work if (id !== null) { var sql = "SELECT * FROM ?? WHERE id = ?"; var inserts = [table, id]; } else { var sql = "SELECT * FROM ?"; var inserts = table; } sql = mysql.format(sql, inserts); connection.query(sql, function (error, results, fields) { // And done with the connection. connection.release(); // Handle error after the release. if (error) callback(error); else callback(null,results); }); }); }; If you need further information, please leave a comment. THANKS!
meck373
1

голосов
0

ответ
273

Просмотры

Создание лямбда-функции в терраформировать работает в течение более длительного периода времени или выхода тайм-аут ошибки

Я пытаюсь создать функцию Lambda, используя приведенную ниже терраформировать сценария: провайдер «АМС» {область = «мы-восток-1»} Ресурс «aws_iam_role» «lambda_exec_role» {имя = «lambda_exec_role» assume_role_policy =
n92
1

голосов
1

ответ
326

Просмотры

Как вызвать Lambda асинхронным от API шлюза?

Согласно здесь, я считаю, что установка заголовка X-Дигг-Invocation-Type: Event должен установить мой Lambda вызов быть асинхронными. Однако, поставив время импорта; time.sleep (5000) в начале моей функции лямбды, и посылать запросы на мой API шлюза, я замечаю, что: $ AWS apigateway Get-интеграция --rest-Апи-ид \ - ресурс-идентификатор \ --http-метод POST | JQ -r».requestParameters' { "integration.request.header.X-Amz-Призвание-Type": "Событие ""} $ AWS apigateway Get-интеграция --rest-апи-идентификатор \ --resource-идентификатор \ --http-метод POST | JQ -r '.uri' ARN: AWS: apigateway: нас-восток-1: лямбда: путь / 2015-03-31 / функции / ARN: AWS: лямбда: нас-восток-1 :: Функция: [... ] Лямбда-4HOA0ZSFAYCI / вызовы $ свернуться https: //.execute-api.us-east-1.amazonaws.com/LATEST/ -d '{}' { "сообщение": " $ AWS apigateway Get-интеграция --rest-Апи-ид \ --resource-идентификатор dzv1zj \ --http-метод POST | JQ -r».integrationResponses' { "200": { "responseTemplates": { "приложения / JSON": NULL}, "StatusCode": "200"}} Если обнулить ли какой-то VTL, что статически возвращающую 200 OK? Что касается альтернатив: Я вижу, что Invoke Асинхр устарела. Я бы на самом деле, а не идти на накладные расходы идти API шлюза -> SNS -> Lambda. EDIT: Вот лог от вызова API с помощью опции «Test» на консоли: Журнал выполнения для запроса теста-запрос Wed Mar 07 17:24:57 UTC 2018: Начало выполнения запроса: тест-вызов-запрос Wed Mar 07 17:24:57 UTC 2018: HTTP метод: POST, путь к ресурсу: / ср 7 марта 17:24:57 UTC 2018: Метод запроса путь: Авторизация = ************************************************ ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************ bfe3de, X-Amz-Source-Arn = ARN: AWS: выполнить-апи: нас-восток-1 :: / нуль / POST /, X-Amz-Призвание-Type = Событие, X-Amz-Security-токена = [УДАЛЕНО] [усеченной] Ср Мар 07 17:24:57 UTC 2018: Конечная точка тело запроса после преобразований: { "ABC": "DEF"} ср 7 марта 17:24:57 UTC 2018: Отправка запроса на https://lambda.us-east-1.amazonaws.com/2015-03 -31 / функций / ARN: AWS: лямбда: нас-восток-1 :: функция: [...] Лямбда-4HOA0ZSFAYCI / вызовы ср 7 марта 17:24:57 UTC 2018: Получен ответ. Интеграция латентности:
scubbo
1

голосов
0

ответ
34

Просмотры

Как справиться с zipfiles, присутствующие в s3, которые фактически возвращаются размер как -1, используя ZipEntry?

В моем случае, ZipFile в S3 ведро, и мы пытаемся получить размер несжатого его с помощью ZipInputStream и его размер, как entry.getSize (), которая фактически возвращается -1. Я гугл и нашел использовать ZipFile, Перечень и zipfile.entries () ответ, но как я должен пройти свой путь s3 архива ниже. ZipFile ZipFile = новый ZipFile ( "??????"); Любой другой способ получить размер несжатого правильно? Пожалуйста помоги. Благодарю.
praveen
1

голосов
0

ответ
357

Просмотры

Использование нескольких версий Lambda с AWS API шлюза

У меня есть две версии функции AWS лямбда. Я хотел, чтобы прикрепить ее к двум этапам API Gateway, разработчика и прод. Я создал два псевдоним, Dev и тычок, для двух версий функции лямбды. Я создал переменный этап под названием имя_файла и при условии, что значения Dev и тычка против них в соответствующих этапах. Против функции лямбды быть обвиненной в разделе Ресурсы я предусмотрел имя функции, как stageTester: $ {stageVariables.fname}, где stageTester это имя моей функции. Это побудило меня присоединить разрешения с помощью AWS CLI. Я побежал следующую команду: AWS лямбда надстройку разрешение --function-имя Арн: AWS: лямбда: ар-юг-1: XXXXXXX: Функция: stageTester: DEV --source-ARN «ARN: AWS: выполнить-апи: ап Юг-1: Zzzzzz: аааааа / * / GET --principal apigateway.amazonaws / stageTester». ком --statement-идентификатор cxbxcx9bx5-68df-4x9d-96xd-9exb497xa934 --action лямбда: InvokeFunction --profile lambdaUser --region ар-юго-1 ... и аналогичный один для прод. Я ожидал, что это будет присоединять разрешения соответствующим образом. Я завершил развертывание и попытался вызвать API. Тем не менее, я столкнулся с внутренней ошибкой сервера каждый раз. На экране функции лямбды против триггера, я вижу следующее сообщение об ошибке API-интерфейс с идентификатором AAAAAA не включает в себя ресурс с путем / stageTester, имеющими интеграционный Арн: AWS: лямбда: ар-юг-1: XXXXXXX: Функция: stageTester: DEV на методе GET Может кто-то помочь мне с этим вопросом? Я столкнулся с внутренней ошибкой сервера каждый раз. На экране функции лямбды против триггера, я вижу следующее сообщение об ошибке API-интерфейс с идентификатором AAAAAA не включает в себя ресурс с путем / stageTester, имеющими интеграционный Арн: AWS: лямбда: ар-юг-1: XXXXXXX: Функция: stageTester: DEV на методе GET Может кто-то помочь мне с этим вопросом? Я столкнулся с внутренней ошибкой сервера каждый раз. На экране функции лямбды против триггера, я вижу следующее сообщение об ошибке API-интерфейс с идентификатором AAAAAA не включает в себя ресурс с путем / stageTester, имеющими интеграционный Арн: AWS: лямбда: ар-юг-1: XXXXXXX: Функция: stageTester: DEV на методе GET Может кто-то помочь мне с этим вопросом?
Nikhil Baliga
1

голосов
0

ответ
685

Просмотры

EROFS: read-only file system while creating node js function AWS Lambda

I have created one function on the AWS lambda using Node js version 6.10. I need to create PDF file from html string and send that file in the email. Following is my code: exports.handler = function index(event, context, callback) { var toAddress = event.to; var fromAddress = event.from; var subject = event.subject; var MailBody = event.mailBody; var PDFHTML = event.PDFHTML; var LabelHTML = event.LabelHtml; var options = { format: 'Legal',"header": { "height": "25mm", } } pdf.convertHTMLString(LabelHTML, '/tmp/LabelDetails.pdf', function(err, res1) { if (err) { console.log(err); callback(err, false); } else { pdf.convertHTMLString(PDFHTML, '/tmp/DiagramDetails.pdf', function(err, res1) { if (err) { console.log(err); callback(null, false); } else { merge(['/tmp/LabelDetails.pdf','/tmp/DiagramDetails.pdf'],'/tmp/Final.pdf',function(err){ if(err) { console.log(err); callback(null, false); } else { /*Send mail code */ callback(null, true); } }); } }); } }); }; var fs = require("fs"); var pdf = require('html-to-pdf'); var merge = require('easy-pdf-merge'); var nodemailer = require('nodemailer'); var path = require("path"); When I try to convert the html string to the PDF file it throws the error EROFS: read only file system. My simple node js code works perfectly fine. After doing more research on this issue I found out that AWS gives write credentials only to the /tmp folder. So I applied file path like /tmp/FileName.pdf but still issue seems to be there.
Aparna
1

голосов
0

ответ
888

Просмотры

Призовите AWS Lambda из PHP с Params

Я пытаюсь создать функцию Lambda, которая будет создавать пустое изображение с размерами передаваемых из PHP-файла. Так как я новичок в AWS я начал с тестовой функцией, которые не участвуют никаких параметров, только что создал пустую 200x300 изображения: «использовать строгие»; Const HTTP = требуется ( 'HTTP'); константные HTTPS = требуется ( 'HTTPS'); Const QueryString = требуется ( '') строку запроса; константное AWS = требуется ( 'AWS-SDK'); S3 = Const новый AWS.S3 ({signatureVersion: 'v4',}); Const = Sharp требует ( 'острого'); // установить S3 и API GW конечных точки константного ВЕДРО = 'MY_BUCKET_ID'; exports.handler = (событие, контекст, обратный вызов) => {пусть запрос = event.Records [0] .cf.request; Sharp ({создания: {ширина: 300, высота: 200, каналы: 4, фон: {г: 255, г: 0, B: 0, альфа: Значение: 'изображение / PNG'}]; обратный вызов (нуль, ответ); }) // получить файл .catch источник изображения (ERR => {console.log ( "Исключение при чтении исходного изображения:% J", ERR);}); }; Я побежал это с помощью функции тестирования в панели Lambda и увидел, что мой test.png показать в моем S3 ведро. Так что следующий шаг вызова из PHP. Я добавил эту линию к моей лямбде, что я получил от другого учебника, чтобы захватить запрос для того, чтобы разобрать строку запроса и такой: пусть запрос = event.Records [0] .cf.request; Тогда в моем PHP я добавил: требуется «../vendor/autoload.php»; $ BucketName = 'MY_BUCKET_ID'; $ IAM_KEY = 'MY_KEY'; $ IAM_SECRET = 'MY_SECRET_ID'; использовать Aws \ Lambda \ LambdaClient; $ Клиент = LambdaClient :: завод (массив ( 'полномочия' => Array ( 'ключ' => $ IAM_KEY, 'секрет' => $ IAM_SECRET), 'версия' => 'последнее', 'область' => 'мы-восток-1')); $ Результат = $ client-> ссылаться ([// имя вашего созданного Lamda функция 'FunctionName' => 'PlaceHolder']); эхо json_decode ((строка) $ result-> Get ( 'Payload')); Где «PlaceHolder» правильное название моей лямбда-функции. Эхо в PHP возвращает: «Catchable фатальная ошибка: Объект класса StdClass не может быть преобразован в строку», и если я пытаюсь запустить функциональность тест на Lambda снова я получаю: TypeError: Не удается прочитать свойство «0» неопределенных на exports.handler (/var/task/index.js:17:30) Ссылаясь на вновь добавленную строку запроса. Так что мой вопрос, как я успешно вызвать эту функцию Lambda из PHP и получить запрос от запроса PHP в Lambda? EDIT: Я echo'd $ результат в целом, а не Payload это результат { "Payload": {}, "StatusCode": 200, "FunctionError": "Неизвестное", "LogResult": "", "ExecutedVersion" : "$ НОВЕЙШИЕ", "@metadata": { "StatusCode": 200, "effectiveUri": «HTTPS: \ / \ / lambda.us-east-1.amazonaws.com \ / \ / 2015-03-31 функции \ / \ / PlaceHolder вызовы», "заголовки": { "дата": "чт, 15 марта 2018 22:01:34 GMT", "content-type": "Приложение \ / JSON", "Content-Length": "107", "соединение": "близко", "
DasBeasto
1

голосов
0

ответ
117

Просмотры

АМС Лямбда - FFmpeg ошибочно выводит искажено / обрезается mp3

Как я могу получить mp3 выход без каких-либо искажений с помощью FFmpeg? Я с использованием FFmpeg на AWS Lambda Linux, используя статический билд предоставленный https://www.johnvansickle.com/ffmpeg/ (x86_64 сборки). После выполнения следующей команды, выход mp3 имеет ужасные подрезки / искажение. FFmpeg -loglevel многословным -ss 0 -t 30 -y -i /tmp/ick_20180323005225.wav -codec: а libmp3lame -qscale: 7 /tmp/ick_20180323005225-opa.mp3 Edit: вот пример файла, который я использовал: HTTP : //www.brainybetty.com/FacebookFans/Feb112010/strings.wav Вот бревно идет от Lambda: Выполнение команды «/ TMP / FFmpeg -loglevel многословным -ss 0 -t 30 -y -i /tmp/ick_20180323005225.wav -codec: а libmp3lame -qscale: 7 /tmp/ick_20180323005225-opa.mp3' ... STDERR: FFmpeg версия 3.4.2-статические https: // johnvansickle. пакеты или раз могут быть недействительными. Угадал Макет канала для входного потока # 0,0: стерео Input # 0, WAV, из '/tmp/ick_20180323005225.wav': Продолжительность: 00: 00: 05.00, битрейт: 1411 кб / сек поток # 0: 0: Аудио: pcm_s16le ( [1] [0] [0] [0] / 0x0001), 44100 Гц, стерео, S16, 1411 кб / с отображением потока: поток # 0: 0 -> # 0: 0 (pcm_s16le (родной) -> mp3 ( libmp3lame)) Нажмите [д], чтобы остановить, для помощи [graph_0_in_0_0 @ 0x4bc64e0] Т.Б. [?]: 1/44100 samplefmt: s16 дискретизации: 44100 chlayout: 0x3 [format_out_0_0 @ 0x4bc6360] авто-вставки фильтра 'auto_resampler_0' между фильтром " Parsed_anull_0' и фильтр 'format_out_0_0' [auto_resampler_0 @ 0x4bd2ee0] ч: 2 CHL: стерео FMT: S16 г: 44100Hz -> ч: 2 CHL: стерео FMT: s16p г: 44100Hz Выход # 0, mp3, на «/ TMP / ick_20180323005225-opa.mp3' : Метаданные: TSSE: Lavf57.83.100 поток # 0: 0: Аудио: mp3 (libmp3lame), 44100 Гц, стерео, s16p, задержка 1105 Метаданные: Кодер: Lavc57.107.100 размер libmp3lame = 11KB время = 00: 00: 00,73 битрейт = 119.5kbits / с Размер скорость = 1.41x = 23Kb время = 00: 00 : 01,67 битрейт = 114.5kbits / с скорость = размер 1.61x = 36kB время = 00: 00: 02,61 битрейт = 113.4kbits / с размер скорость = 1.65x = 48kB время = 00: 00: 03,55 битрейт = 111.0kbits / с скорость = размер 1.69x = 60kb время = 00: 00: 04,46 битрейт = 109.6kbits / s скорость = 1.71x нет больше выходных потоков для записи, отделки. размер = 67KB время = 00: 00: 05,01 битрейт = 108.9kbits / s скорость = 1.75x видео: 0Kb аудио: 66KB субтитров: 0Kb другие потоки: 0Kb глобальные заголовки: 0Kb мультеплексировать накладные расходы: 0,371917% входного файла # 0 (/ TMP / ick_20180323005225.wav): Входной поток # 0: 0 (аудио): 216 пакетов чтения (881988 байт); 216 кадров декодируются (220497 образцов); Всего: 216 пакетов (881988 байт) демультиплексированные Выходной файл # 0 (/tmp/ick_20180323005225-opa.mp3): Выходной поток # 0: 0 (аудио): 192 кадров, закодированные (220497 образцов); 193 пакетов мультиплексирования (68026 байт); Всего: 193 пакетов (68026 байт) мультиплексированы выполнения команды «/ TMP / FFMPEG -loglevel многословным -ss 0 -t 30 -y -i /tmp/ick_20180323005225.wav -codec: а libmp3lame -qscale: 7 / TMP / ick_20180323005225- opa.mp3' с кодом: 0.
Eric Amshukov
1

голосов
1

ответ
196

Просмотры

Ошибка Упаковочный в развертывании Django Zappa

Я пытаюсь развернуть мое приложение Django с помощью Заппы. Я использую Python 3.6 (хотя, у меня есть питон 2.7 установлен на моем MacBook, никогда не использовал его). Все идет гладко с развертыванием, за исключением, когда я иду в URL, я получаю эту ошибку. «{„Сообщение“:„неперехваченного исключение произошло во время обслуживания этого запроса Вы можете исследовать с помощью команды Zappa хвоста..“,„Отслеживающий“: [„Traceback (самый последний вызов последним): \ п“, 'File \» /var/task/handler.py \», строка 452, в обработчик \ п ответ = Response.from_app (self.wsgi_app, окружать) \ п '' Файл \ "/ Var / задача / Werkzeug / wrappers.py \" , линия 903, в from_app \ п возвратных ЦБС (* _ run_wsgi_app (приложение, окружать, буфер)) \ п '' Файл \ "/ Var / задачи / Werkzeug / wrappers.py \", линии 57, Правило / г-Suri-производство-Заппа-держать-прогрев handler.keep_warm_callback '], 'идентификатор': 'f15a5fd5-aaf9-dfb7-1553-d14bb33d1b2b', 'kwargs': {}} [1522350561286] [Debug] 2018 -03-29T19: 09: 21.282Z afbf4f1c-3384-11e8-8a03-a1095dcd99f5 Заппа событие: {} Я не пытался сбросить свой виртуальный окр и requirements.txt с нуля, но не помогает. Это то, что мой файл настройки Zappa выглядит { "производство": { "aws_region": "мы-восток-1", "django_settings": "r_suri.settings", "имя_файла_настройки": "по умолчанию", "slim_handler": " истина», "имя_проекта": "г-Suri", "среда выполнения": "python3.6", "s3_bucket": "г-suri2" }} Кто-нибудь знает, что это ошибка? и как я могу это исправить?
Raghav Suri
1

голосов
1

ответ
214

Просмотры

Node.js Получить данные HTTP POST запроса

Я новичок в Node.js и пишу функцию AWS Lambda в Node.js, чтобы получить данные из REST конечной точки и передавать данные обратно в Alexa. Ниже приведен фрагмент моего кода: вар REQ = http.request (post_options, функция (ответ) {вар ул = «»; response.setEncoding ( «utf8»); // еще один кусок данных был получал, поэтому добавьте его в `str` response.on («данные», функции (порция) {ул + = чанка;}); // всего ответ был получило, так что мы просто распечатать его здесь response.on («конца», функция () {результат переменная = JSON.parse (ул); текст = 'Согласно Weather Underground, температура в' + citySlot + '' + stateSlot + 'чувствует'; текст + = result.HighFahr0 + "градусов по Фаренгейту. "; приставка. журнал ( "текст" :: + текст); }); }); req.write (post_data); //this.emit(':ask», текст„Все остальное я могу вам помочь?“); req.end (); Если я выполнить this.emit сразу после построения текстовой строки, она не работает. Если я выполнить this.emit после функции req.write, переменная текст выходит за рамки и не содержит в себе ничего. Как я могу получить содержимое текстовых переменных после req.write () и req.end ()? Спасибо большое. Как я могу получить содержимое текстовых переменных после req.write () и req.end ()? Спасибо большое. Как я могу получить содержимое текстовых переменных после req.write () и req.end ()? Спасибо большое.
VRam
1

голосов
1

ответ
312

Просмотры

AWS .NET Ядро Лямбда - изображение Загрузить Сломанный

Я нахожусь в процессе создания Web API с AWS Lambda с использованием .NET Core. Я столкнулся с проблемой, когда кусок кода ниже работы, как и ожидалось на моей машине Windows, (ECHO изображение обратно), но при развертывании на AWS Lambda, возвращенное изображение нарушается. После дальнейшего исследования, размер отражаемых обратно файла почти в два раза размер отправки файла при развертывании на AWS? [HttpPost] общественности асинхронной Task Post (IFormFile файл) {используя (вар tmpStream = новый MemoryStream ()) {ждут file.CopyToAsync (tmpStream); вар FileExtension = Path.GetExtension (file.FileName); вернуть файл (tmpStream.ToArray (), file.ContentType); }} Я пропускаю некоторые конфигурации или с видом на что-то? AWS шлюз ?? (Я тестирую вопрос через Postman)
SOK
1

голосов
0

ответ
108

Просмотры

Закрытие гном кассетных соединений, созданные с AWS лямбды

У меня есть Java лямбда, что создает Gremlin кластера: кластер = Cluster.build () .addContactPoints (shuffled.toArray (новый String [endpoints.length])) .port (Integer.parseInt (порт)) .serializer (новый GryoMessageSerializerV1d0 (GryoMapper.build () addRegistry (JanusGraphIoRegistry.getInstance ()).)) .maxConnectionPoolSize (4096) .maxSimultaneousUsagePerConnection (4096) .maxInProcessPerConnection (4096) .maxWaitForConnection (30000) .create (); Я затем создать Traversal с этим: Окончательное соединение DriverRemoteConnection = DriverRemoteConnection.using (кластер) .; .. Окончательный GraphTraversalSource г = TinkerGraph.open () Обход () withRemote (соединение); Вот моя проблема, Создание кластера является дорогостоящим, и я хотел бы сделать это только один раз в создании лямбда и использовать его, если лямбда повторно.
Jarad Duersch
1

голосов
2

ответ
613

Просмотры

Unexpected Parsing Error On AWS Lambda JS

Я думаю, что это ошибка синтаксиса, но у меня возникают проблемы с поиском документации. Я получаю «Ошибка синтаксического анализа: Неожиданный токен {» Это говорит свое дело с. „YesIntent“, но не даст специфику Я новичок в JS, но я не могу увидеть, что может быть проблемой каждый.. '{' имеет соответствие '}' Любые идеи будут оценены Спасибо Const Alexa = требуется ( "Алекс-СДК");... константный APPID = ''; // ''; exports.handler = функция (событие, контекст, обратный вызов) {Const = Alexa.handler Alexa (событие, контекст); alexa.appId = APPID; alexa.registerHandlers (обработчики); alexa.execute ();}; Const обработчики = { 'LaunchRequest': функция () { this.emit ( 'YesIntent');}, 'YesIntent': функция () {GetData (обратный вызов (название) {this.response.speak (» Вот + название ваши данные '); this.emit ( ': responseReady'); })}; Функция GetData () {вар DDB = новый AWS.DynamoDB.DocumentClient ({регион: 'мы-запад-1'}); вар PARAMS = {TABLENAME: 'WallyFlow_StartTime', ключ: 'TimeStamp'}; ddb.get (PARAMS, функция (ERR, данные) {если (ERR) {обратный вызов (ERR, NULL);} еще {название = data.Item.title;}}); } заглавие; }}); } заглавие; }}); }
Teckrio
1

голосов
1

ответ
754

Просмотры

AWS Lambda Ошибка: Процесс завершился до завершения запроса

Я перепробовал все найденные решения по другим вопросам, похоже на переполнение стека, но я все еще получаю эту ошибку. Я новичок и только начал изучать это. Таким образом, я не уверен, если я отслеживаю решение правильно. Но вот мой код. Я был бы признателен, если кто-то может мне помочь. вар MySQL = требуется ( 'MySQL'); вар бассейн = mysql.createPool ({хозяин: 'хозяин', ​​пользователь: 'пользователь', пароль: 'пароль', база данных: 'студент', connectionLimit: 10, multipleStatements: истинный}); exports.handler = функция (событие, контекст, обратный вызов) {context.callbackWaitsForEmptyEventLoop = ложь; pool.getConnection (функция (эээ, соединение) {connection.query ( "SELECT FROM имя 'ученика'. 'курс'", функция (эээ, результаты, поля) {если (ERR) {console.log ( "НЕ-CONNECTED!"); connection.destroy (); бросить ERR; } Еще {// подключайтесь! console.log ( "Connected!"); console.log (результаты); Обратный вызов (ERR, результаты); connection.end (функция (ERR) {обратного вызова (ERR, результаты);}); }}); }); };
user9646260
1

голосов
0

ответ
49

Просмотры

Мониторинг и предоставления уведомлений веб-клиента о ходе функции лямбда?

Если мы хотим, чтобы предоставлять уведомления о ходе работ по функции лямбда на веб-клиент, как это делается? Другими словами, мы хотим, чтобы отправить процент выполнения обновления постепенно до тех пор, пока работа будет завершена, и в этот момент мы возвращаем результат функции. Одна из ссылок на форуме Amazon сказал использовать SNS? В таком случае, что бы процесс будет для установки, что до?
Ole
1

голосов
0

ответ
97

Просмотры

Запуск задачи на новый экземпляр ECS

Я хотел бы запустить новую задачу на кластере ECS, когда новое сообщение SNS опубликовано. Для делать это, у меня есть функция лямбды, который выполняет задачу. Тем не менее, я не хочу, чтобы иметь экземпляр всегда работает, я хотел бы иметь пустой кластер и запустить новый экземпляр каждый раз, когда функция лямбды называется (поэтому задача выполняется в новом экземпляре), а затем, когда задача выполнена, снова остановить экземпляр. Как я мог бы достичь такого поведения? Заранее спасибо!
FVod
1

голосов
0

ответ
629

Просмотры

Google листов апи от AWS Lambda

05 секунд Похоже, Google SDK хочет открыть браузер для пользователя для проверки подлинности, но нет браузера в AWS Lambda. Есть еще один способ проверки подлинности, не открывая браузер? Если я использую https://developers.google.com/identity/protocols/OAuth2ServiceAccount#jwt-auth будет работать? Кто-нибудь имеет какие-либо полезные ссылки / образец, который я могу использовать? Я не программист, опыт действительно ценю вашу помощь, спасибо заранее.
Lobo
1

голосов
0

ответ
85

Просмотры

AWS Lambda not receiving Content-Type

Я экспериментировал с Zappa, чтобы развернуть приложение фляги API шлюз + лямбда-прокси. Тем не менее, я не получаю заголовок Content-Type в моем приложении, даже не как строчный, как я видел в других ответах. Нужно ли мне настраивать ничего конкретного для этого заголовка? Другие заголовки получить передаются вместе с моим приложением без какой-либо конфигурации, необходимой, например: завиток -X POST \ -H «Content-Type: применение / х-WWW-форм-urlencoded» \ -H «Разрешение: это-достигает лямбда» \ -Н «MyCustomHeader: это-достигает лямбда» \ -d «Имя пользователя = MyUserName и пароль = MyPassword» \ «https://myurl.myregion.amazonaws.com/api/» это заголовки я получаю в лямбда: [1524670029998] Content-Length: 52 [1524670029998] Accept: * / * [1524670029998] Авторизация:
ffleandro
1

голосов
1

ответ
156

Просмотры

Добавить заголовки CORS на 5xx в ответах API шлюза с прокси-интеграции Lambda

У меня есть прокси-интеграции Lambda с API шлюз, который работает отлично. CORS осуществляется непосредственно в коде лямбды с проверками в отношении списков разрешенных доменов. Но проблема сейчас с неожиданными ошибками во время выполнения Lambda. Шлюз API возвращает следующее сообщение в таком случае: {сообщение: «Внутренняя ошибка сервера»} код статуса 502 HTTP. К сожалению, для меня, Access-Control-Allow-Origin заголовок отсутствует в этом ответе, который вызывает ошибки на стороне клиента. То же самое происходит и с тайм-аутом, например. Код состояния HTTP затем 504, но содержание ответа и отсутствие доступа-Control-Allow-Origin одно и то же. Та же проблема возникает и в случае выдачи разрешения: если API шлюз не имеет достаточных прав для вызова Lambda, то возвращается ошибка 500, но, опять же, без заголовка. Фиксированная стоимость «*» будет в порядке в случае возникновения ошибок Lambda, но, как и где это может быть настроено?
1

голосов
0

ответ
45

Просмотры

Я хочу, чтобы вызвать лямбда для CLoudform статуса в cloudwatch событий. Так что я могу послать стек детали передать API

импорт boto3 CloudFormation = boto3.resource ( 'CloudFormation') Защита lambda_handler (событие, контекст): печать (событие) событие = cloudformation.Event ( 'ID') возвращает 'Привет из Lambda' Я хочу, чтобы вызвать лямбду для статуса CLoudform в cloudwatch события. Так что я могу послать стек детали передать API. В журналах я не мог видеть какие-либо подробности.
Vasu R
1

голосов
3

ответ
200

Просмотры

AWS Rekognition и s3 призывающие подпапок в Python Lambda

У меня возникли проблемы, выяснить, как получить доступ к определенной папке в ведре в s3 с помощью Python Скажем, я пытаюсь получить доступ к этой папке в ведре, который содержит кучу изображений, которые я хочу запустить rekognition на: «myBucket / подпапок / изображений /»в / изображения / папки есть: one.jpg two.jpg three.jpg four.jpg Я хочу запустить detect_labels rekognition на этой папке. Тем не менее, я не могу получить доступ к этой папке, но если изменить bucket_name к только корневой папке ( «myBucket» /), то я могу получить доступ только к этой папке. bucket_name = "myBucket / вложенную папку / изображений /" rekognition = boto3.client ( 'rekognition') s3 = boto3.resource ( 's3') ковш = s3.Bucket (имя = bucket_name)
user2624768
1

голосов
0

ответ
239

Просмотры

AWS Lambda теряет связь с SQS в VPC с использованием шлюза NAT с EIP после ~ 12 часов

У меня настроить VPC в том числе 3 подсетей, 1 интернет-шлюза, 1 NAT шлюза, 1 RDS кластера, очередей SQS и еще нескольких вещей (см ниже полную конфигурация). Это все прекрасно работает при развертывании. Мои облака функция может получить доступ к RDS, SQS и опубликовать SNS без проблем. Однако, через пару часов (я думаю, 12 часов) он все Перестал работать! После этого отключиться, вызывая тот же лямбда, которая работала отлично несколько часов назад приводит к тайм-аут. Это тот же результат, который вы получаете, когда вы удалите шлюз NAT (как лямбда больше не будет иметь доступ к SQS или SNS в VPC). Вот мой CloudFormation шаблон / Serverless: ServerlessVPC: Тип: AWS :: EC2 :: VPC Свойства: CidrBlock: '10 .0.0.0 / 16' EnableDnsSupport: истинные EnableDnsHostnames: истинные слова: - Ключ: Название Значение: пульс - $ {самоуправления: provider.stage} ElasticIP: Тип: AWS ::
Mickel
1

голосов
2

ответ
224

Просмотры

Лямбда подключается к Aurora MySql локально - время, когда развернут на AWS

У меня есть кластер Aurora MySql, которая была обнародована, чтобы я мог подключиться к нему с моей локальной рабочей станции. Я создал aspnetcore проект, который может подключиться к базе данных, запрос и возвращает результаты для меня, если я бегу лямбда локально в VS Кодекса. Когда я развернуть Lambda в AWS (загрузка опубликованной .zip) лямбда выполняет API-интерфейсы (через API шлюза), которые не взаимодействуют с базой данных просто отлично. Как только я ударил API, который пытается подключиться к Aurora, это раз, и выходит из строя. Lambda и RDS находятся в одной и той же VPC, и в пределах одной подсети. Я пытался с РДС быть как государственной, так и частной, ни работой. Моя Lambda имеет IAM роль, отведенную ему, который предоставляет ему полный доступ RDS и Full VPC доступа. Какие дополнительные бы лямбда нужно для того, чтобы поразить Aurora? Я также попытался запустить Lambda в тех же VPC / подсетях, и без каких-либо VPC. Когда я запускаю его без VPC прилагается, я вернусь весь StackTrace в Cloudwatch говоря, что это истекло пытается подключиться. Когда я бег Lambda в пределах VPC / подсетей, я не получаю лог сообщения от Lambda, записанного в CloudWatch. Редактировать, чтобы показать настройки группы безопасности Aurora MySql RDS Lambda группы безопасности
1

голосов
1

ответ
627

Просмотры

«Преобразование кольцевой структуры с JSON» во время чтения данных из MYSQL и положить его в DynamoDB

Я читаю данные от чтения реплики Авроры и положить его в DynamoDB. Я получаю данные из RDS правильно, но сталкиваются с проблемами при вставке его в DynamoDB. Я делюсь мой код и сообщение об ошибке, пожалуйста, руководство меня .... вар AWS = требуется ( «AWS-СДК»); вар MySQL = требуется ( 'MySQL'); Const клиент = новый AWS.DynamoDB.DocumentClient ({регион: 'ес-запад-1'}); вар соединение = mysql.createPool ({хост: "**********", пользователь: "****", пароль: "*****", база данных: "MYDB", порт: "3306"}); exports.handler = (событие, контекст, обратный вызов) => {connection.query ( 'выберите * из демо, где ID = 2;', функция (ошибка, результаты, поля) {если (ошибка) {если (ошибка) ошибки в двух ; } Еще {вар данные = {Результаты}; вар PARAMS = {Пункт: {test_id: data.id, имя: data.name, результат: data.result}, TableName: 'demo_rds_dynamoDB'}; connection.end (функция (ERR) {обратного вызова (ERR, client.put (PARAMS, функция (ошибка, данные) {если (ошибка) {обратного вызова (ошибка, NULL);} еще {обратный вызов (нуль, данные);}} ));}); }}); }; Ниже данные я получаю от Aurora, и я хочу поставить в DynamoDB Response: [{ «ID»: 2, «имя»: «Дисплей», «результат»: «Pass»}] И ответ получаю как следовать, и иногда я получаю ошибку не удается прочитать свойство «идентификатор»
Vivek
1

голосов
1

ответ
230

Просмотры

Как использовать Cognito для управления Доступ к API

Мы строим ряд microservices с использованием API-шлюз + лямбда + DynamoDB. Мы должны обеспечить этот API, с помощью которых Cognito мы используем для управления пользователями. Мы будем иметь пул пользователя и две группы с разной IAM ролью, прикрепленной к каждой группе. Потребность пользователей в одной группе не должны быть в состоянии получить доступ ко всем услугам и поэтому пользователи в другой группе. Любые предложения, как мы можем это реализовать? Вопрос ID маркер генерируется Cognito не проверяется шлюзом API, чтобы проверить, какой уровень доступа пользователя имеет. Все это проверяет, если Cognito ID токен является действительным или нет.
Himanshu
1

голосов
1

ответ
532

Просмотры

Configuration of environment variables for different AWS Lambda aliases in CloudFormation template

Я создаю шаблон CloudFormation для моей функции AWS лямбды и мне нужно задать различные значения переменных окружения для различных лямбды псевдонимов. Мой шаблон выглядит следующим образом: AWSTemplateFormatVersion: "2010-09-09" Transform: "AWS :: Serverless-2016-10-31" Описание: Lambda ресурсов конфигурации функции: EndpointLambda: Тип: "AWS :: Lambda :: Функция" Свойства: FunctionName: "конечная точка лямбда" Handler: "com.test.aws.RequestHandler :: handleRequest" Runtime: java8 Код: S3Bucket: "лямбда-функции" S3Key: "тест-конечная точка лямбда-0.0.1.jar" Описание: тест Lambda функция MemorySize: 256 Время ожидания: 60: среда переменные: ES_HOST: тест-эс-хост-URL ES_ON: правда ES_PORT: 443 ES_PROTOCOL: HTTPS REDIS_URL: тест-Redis-хост-URL QaLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ref EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "Производство псевдоним" Как вы видите, у меня есть два псевдонима - QA и Prod и куча окружающей среды! переменные. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? 443 ES_PROTOCOL: HTTPS REDIS_URL: тест-Redis-хост-URL QaLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип : "AWS :: Lambda :: Alias" Свойства: FunctionName: Ref EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения!. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? 443 ES_PROTOCOL: HTTPS REDIS_URL: тест-Redis-хост-URL QaLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип : "AWS :: Lambda :: Alias" Свойства: FunctionName: Ref EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения!. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? тест-Redis-хост-URL QaLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип: «AWS :: Lambda :: Alias»Свойства: FunctionName: Ref EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? тест-Redis-хост-URL QaLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип: «AWS :: Lambda :: Alias»Свойства: FunctionName: Ref EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? Ссылка EndpointLambda FunctionVersion: 1 Имя: "ОК" Описание: "QA псевдоним" ProdLambdaAlias: Тип: "AWS :: Lambda :: Alias" Свойства: FunctionName: Ссылка EndpointLambda FunctionVersion: 1 Название: "Prod" Описание: "псевдоним производства" Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? Ссылка EndpointLambda FunctionVersion: 1 Название: «Prod» Описание: «псевдоним производства» Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать? Ссылка EndpointLambda FunctionVersion: 1 Название: «Prod» Описание: «псевдоним производства» Как вы видите, у меня есть два псевдонима - QA и Prod и куча переменных окружения. Я определил переменных с общими значениями в объявлении функции лямбды. Но мне нужно, чтобы объявить для QA псевдоним окр. Значения переменных, связанные с КАМИ, и для Prod псевдонима - значения для Prod среды. Любые идеи, как я могу это сделать?
Gleb Kosteiko
1

голосов
0

ответ
451

Просмотры

Locally debug a AWS Lambda function within Visual Studio using a sample JSON input string

Я создал функцию лямбда и он размещен AWS с помощью Visual Studio AWS SDK. Из-за некоторые живые вопросы нужно поставить точку останова на этом. Кто-то предложит создать тестовый проект, чтобы проверить, что и сделал то же самое. После этого также это возвращение ниже ошибки. AWS лямбда для отладки этого проекта, «Emitentrypoint»: истинные потребности быть добавлены к вариантам сборки в project.json и точки входа, добавленные в проект После этого добавляют emitentrypoint в project.json (Test проекта) { «версия» : "1.0.0- *", "buildOptions": { "emitEntryPoint": истинно}, "зависимости": { "Microsoft.NETCore.App": { "типа": "платформа", "версия": «1,0. 0" }, "Amazon.Lambda.Core": "1.0.0 *", «Amazon. государственной статической силы основных (String [] арг) {FunctionTest functionTest = новый FunctionTest (); functionTest.TetGetMethod (); } Я новый для тестирования projects.Still я получаю один и тот же вопрос, дать мне предложение. государственной статической силы основных (String [] арг) {FunctionTest functionTest = новый FunctionTest (); functionTest.TetGetMethod (); } Я новый для тестирования projects.Still я получаю один и тот же вопрос, дать мне предложение.
1

голосов
0

ответ
158

Просмотры

Слушатель для автоматического обнаружения сообщения от Amazon SQS и извлекать их

Прецедент: Я создал форму для ввода реквизитов пользователя в ASP.NET. Теперь после того, как детали введены, на кнопку мыши, детали вводятся в Amazon SQS. После этого я добавил слушатель, который имеет кнопку «btn_ReceiveMessage». При нажатии этой кнопки сообщение (информация о пользователе) получает извлекается из Amazon SQS и сохраняется в базе данных SQL. Требование: Теперь я хочу, чтобы автоматизировать этот процесс. Вместо того, чтобы нажать на кнопку «btn_ReceiveMessage», слушатель должен быть в состоянии обнаружить, если новые сообщения добавляются в очередь SQS, и при добавлении затем слушатель должен автоматически получать их. Является ли это возможным ? Могу ли я, возможно, использовать планировщик для этого процесса или есть какой-то другой способ? Заранее спасибо. Любая помощь будет оценена.
1

голосов
1

ответ
468

Просмотры

Ошибка импорта: «lambda_function»: не может импортировать имя «_imaging»

Я пытаюсь импортировать PIL на AWS. Я установил PIL, используя следующую команду. PIP3 инсталляцию Подушка -t Desktop / моя_папка затем заархивированы внутри библиотеки и lambda_function.py Он смотрит на AWS консоли, как этот EDIT: Новый снимок Но я получаю ошибку ниже. ОЮЛ «lambda_function»: не может импортировать имя «_imaging»
Pro-Web

Просмотр дополнительных вопросов