#javascript #node.js #amazon-web-services #aws-lambda #serverless-application-model
#javascript #node.js #amazon-веб-сервисы #aws-lambda #бессерверная модель приложения
Вопрос:
в документации SAM показана возможность развертывания собственной конечной точки lambda и вызова ее с помощью Python SDK.
Вам просто нужно запустить локальную конечную точку lambda с sam local start-lambda
помощью, а затем продолжить
# USING AWS SDK
-------------
#You can also use the AWS SDK in your automated tests to invoke your functions programatically.
#Here is a Python example:
self.lambda_client = boto3.client('lambda',
endpoint_url="http://127.0.0.1:3001",
use_ssl=False,
verify=False,
config=Config(signature_version=UNSIGNED,
read_timeout=0,
retries={'max_attempts': 0}))
self.lambda_client.invoke(FunctionName="HelloWorldFunction")
Теперь у меня вопрос: как я могу сделать то же самое с Javascript SDK? Я всегда получаю разные ошибки об отсутствующих регионах, не найденных хостах и неподдерживаемых параметрах.
У вас есть решение для меня?
Комментарии:
1. Вместо того, чтобы говорить «я получаю эти ошибки при попытке», покажите фактический код и фактическое сообщение об ошибке, чтобы мы могли помочь. Мы здесь, чтобы помочь с проблемами, мы здесь не для того, чтобы предоставлять бесплатную услугу преобразования кода.
2. Да, я знаю, вчера я немного спешил. Обычно я предоставляю достаточно кода, чтобы лучше понять мои проблемы. Я обещаю улучшение.
Ответ №1:
AWS JavaScript SDK требует регион и учетные данные для выполнения запросов. Но для локальных конечных точек вы можете использовать произвольные значения.
Следующий пример работает для меня:
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda({
apiVersion: '2015-03-31',
endpoint: 'http://127.0.0.1:3001',
sslEnabled: false,
region: 'us-east-1',
accessKeyId: 'any',
secretAccessKey: 'any'
});
lambda.invoke({
FunctionName: 'HelloWorldFunction'
}, (err, res) => {
console.log(res);
});
Комментарии:
1. Большое вам спасибо. Мой код выглядел почти так же, но что-то просто не сработало.