Как вызвать AWS Lambda через сервисный уровень в проекте .NET API и развернуть через AWS CLIC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как вызвать AWS Lambda через сервисный уровень в проекте .NET API и развернуть через AWS CLI

Сообщение Anonymous »

У меня есть проект ASP.net Core Web API и отдельный уровень обслуживания, который содержит бизнес -логику. Я хочу вызвать функцию AWS Lambda из моего уровня обслуживания (не непосредственно из API) и обрабатывать результат в моем API. Кроме того, я хочу упаковать и развернуть функцию Lambda с помощью AWS CLI и интегрировать ее в свой существующий конвейер CI/CD.
Что я сделал: < /p>
  • Создал функцию Lambda в отдельном проекте .NET. Вот функция лямбда: < /li>
    < /ol>
    using Amazon.Lambda.Core;
    using System;
    using System.Collections.Generic;
    using Amazon.Lambda.Serialization.SystemTextJson;

    [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]

    namespace MyLambdaFunction
    {
    public class MyLambda
    {
    private readonly object cacheLock = new object();

    public MyLambda()
    {
    // You can initialize services here if needed
    }

    public MyResponse FunctionHandler(DateTime fromDate, DateTime toDate, ILambdaContext context)
    {
    lock (cacheLock)
    {
    // Logic to get data from cache or service if needed
    MyResponse result = new MyResponse(); // Replace with actual data retrieval logic
    return result;
    }
    }
    }
    }
    < /code>

    Добавлена ​​следующая логика вызова лямбды в сервисный уровень проекта API: < /li>
    < /ol>
    public class LambdaInvokerService
    {
    private readonly IAmazonLambda _lambdaClient;

    public LambdaInvokerService(IAmazonLambda lambdaClient)
    {
    _lambdaClient = lambdaClient;
    }

    public async Task InvokeLambdaAsync(string functionName, object payload)
    {
    var request = new InvokeRequest
    {
    FunctionName = functionName,
    Payload = System.Text.Json.JsonSerializer.Serialize(payload)
    };
    var response = await _lambdaClient.InvokeAsync(request);
    return new StreamReader(response.Payload).ReadToEnd();
    }
    }
    < /code>
    Вопросы: < /p>

    Это правильный дизайн для вызова лямбды со уровня обслуживания? Есть улучшения? Как я могу автоматически интегрировать развертывание лямбда в свой существующий трубопровод CI/CD?


Подробнее здесь: https://stackoverflow.com/questions/794 ... -deploy-vi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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