Как вызвать Lambda в C# без предоставления accessKey или secretAccessKeyC#

Место общения программистов C#
Anonymous
Как вызвать Lambda в C# без предоставления accessKey или secretAccessKey

Сообщение Anonymous »

Я пытаюсь использовать .Net SDK для вызова AmazonLambdaClient.InvokeAsync(). Я не хочу жестко запрограммировать accessKey или secretAccessKey в своем программном обеспечении или хранить их на устройстве пользователя, поэтому хочу вызвать AWS Lambda, не предоставляя ни того, ни другого.
Я использовал Раздел Lambda на главной странице консоли AWS для создания функции Lambda по умолчанию.
Ниже приведен код, используемый для вызова Lambda.

Код: Выделить всё

public async Task AWS_LambdaTest()
{
AmazonLambdaClient client = new AmazonLambdaClient(RegionEndpoint.APSoutheast2);

try
{
var lambdaRequest = new InvokeRequest
{
FunctionName = "[Function ARN goes here]",
};

InvokeResponse response = await client.InvokeAsync(lambdaRequest);
}
catch(System.Exception e)
{
Debug.Log(e);
}
}
Мой файл учетных данных (расположенный по адресу %USERPROFILE%\.aws\credentials) не содержит реальных учетных данных.
При запуске В приведенном выше коде я получаю сообщение об ошибке Amazon.Lambda.AmazonLambdaException: токен безопасности, включенный в запрос, недействителен. ---> Amazon.Runtime.Internal.HttpErrorResponseException: возникло исключение типа Amazon.Runtime.Internal.HttpErrorResponseException.
Из того, что я прочитал, я считаю, что эта ошибка возникает, потому что когда я создаю AmazonLambdaClient без предоставления AccessKey и SecurityKey, он создается с использованием значений в учетных данных. (оба из которых являются ненужными строками в файле учетных данных) и выдает ошибку при попытке использовать эти нежелательные учетные данные для доступа к сервису AWS.
Что мне нужно сделать, чтобы разрешить моему программному обеспечению вызывать Lambda по умолчанию, которую я создал на любом устройстве без жесткого кодирования доступа и секретных ключей доступа к моему программному обеспечению? Я хотел бы найти решение, которое позволит мне использовать только вызов .Net SDK, а не использовать другую службу, например API Gateway.
Изменить;< /p>
Чтобы подтвердить свое понимание вышеизложенного, я временно создал ключи доступа и включил их при создании AmazonLambdaClient, и приведенный выше код выполнился правильно, без ошибок. На самом деле я так и думал: запрос на вызов содержит ненужные учетные данные из файла учетных данных.
Поэтому мой вопрос остается; как я могу заставить этот вызов работать без предоставления каких-либо ключей доступа, поскольку я не хочу хранить их на устройствах пользователей?

Подробнее здесь: https://stackoverflow.com/questions/784 ... taccesskey

Вернуться в «C#»