Я создал функцию AWS lamdba, которую я запускаю с помощью сценария Windows bat. Сценарий windows bat принимает переменную среды windows USERNAME как часть полезной нагрузки.
Я успешно работаю на локальном компьютере со следующим синтаксисом:
aws lambda invoke --function-name ConnectDesktops --payload "{\"Name\": \"%USERNAME%\" }" response.json
Однако затем я передал этот bat-файл своим конечным пользователям, если они сталкиваются с ошибками при выполнении той же команды
Произошла ошибка (InvalidRequestContentException) при вызове операции Invoke: Не удалось разобрать тело запроса в json: неожиданный символ ('©' (код 169)): ожидаемое пространство, разделяющее значения root -уровня в [Source: (byte []) "5��F�b����" ; строка: 1, столбец: 3]
Переменная среды разрешается на их рабочем столе, но я все же разрешил ее вручную и попробовал несколько альтернатив для полезной нагрузки
aws lambda invoke --function-name ConnectDesktops --payload "{\"Name\": \"User1\" }" response.json
aws lambda invoke --function-name ConnectDesktops --payload "{"Name": "User1" }" response.json
aws lambda invoke --function-name ConnectDesktops --payload '{"Name": "User1"}' response.json
aws lambda invoke --function-name ConnectDesktops --payload {"Name": "User1"} response.json
Все с тем же результатом или, возможно, что-то вроде
Неизвестные параметры: response. json,} '
Опять же, начальная команда фактически работает на моем собственном рабочем столе, и мы оба используем Windows 10 и инструмент командной строки cmd.
Моя aws лямбда-функция записана в Python 3.8 и запускается так
import boto3
from botocore.exceptions import ClientError
client=boto3.client('ec2')
def lambda_handler(event, context):
name=event['Name']
Буду признателен за любые предложения.