2016-12-15 4 views
6

У меня есть кусок кода, который мне нужно сделать доступным через «Сеть». Это идеальная подгонка для AWS Lambda с API HTTP сверху - безгосударственный, свободный от побочных эффектов, довольно интенсивный процессор, функция blob in, blob out. Это написано в # /. NET C, но это не чисто .NET, он использует UWP API, поэтому требует Windows Server 2016Безсерверный вычислить на Windows в AWS

AWS Lambdas only run on Linux hosts, даже C# из них. Есть ли способ развернуть этот кусок в облаке Амазонки без сервера - возможно, что-то другое, чем Лямбда? Я знаю, что я могу пойти с EC2 VM, но это то самое, на что была изобретена серверная архитектура.

ответ

4

Lambda - единственный вариант для безсерверных вычислений на AWS и Lambda, работающих только на машинах Linux.

Если вам нужно запустить серверные функции на компьютере с Windows, попробуйте Azure Functions. Это эквивалент Лямбды в облаке Microsoft. Я не уверен, что он работает на компьютере под управлением Windows Server 2016 и не может найти ссылки на платформу, но я бы ожидал, что, будучи совершенно новым сервисом, они используют свои собственные технологии.

Чтобы подтвердить, если платформа это то, что вам нужно, попробуйте эту функцию:

using System.Management; 
using System.Net; 
using System.Threading.Tasks;  

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    // Get OS friendly name 
    // http://stackoverflow.com/questions/577634/how-to-get-the-friendly-os-version-name 
    var caption = (from x in new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem").Get().Cast<ManagementObject>() 
        select x.GetPropertyValue("Caption")).FirstOrDefault(); 
    string name = caption != null ? caption.ToString() : "Unknown"; 

    // the function response 
    return req.CreateResponse(HttpStatusCode.OK, name); 
} 
-1

Я думаю, что в годовом исчислении можно достичь с помощью сочетания службы CodeDeploy и AWS CodePipeline.

Обратитесь к этой статье:

http://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-windows.html

, чтобы узнать, как развернуть код через CodeDeploy. Позже в этой статье:

http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html

, чтобы узнать, как вы можете настроить AWS Pipline для вызова кода Deploy, а затем выполнить свой пакетное задание на созданной окна машины (примечание: вы, вероятно, захотите использовать S3 вместо Github - что возможно с CodePipeline).

Я считаю самонастройки всей такой конфигурации с помощью сценария - с помощью АМС кли - таким образом, вы можете очистить ваши ресурсы легко, как это:

: AWS codepipeline удалить трубопроводный --name «MyJob»

Конечно, вы можете настроить конвейер через веб-консоль aws и оставить конвейер настроенным для регулярного запуска вашего кода.

+1

CodeDeploy подразумевает экземпляры EC2, не так ли? Я без сервера без сервера. –

+0

ok .. но подумайте, что лямбда действительно делает .. он не выполняет код в воздухе .. он также должен использовать какой-то ec2 – walkeros

+1

Правильно, но это уже не мое беспокойство :) Не хочу тратить поддерживая инфраструктуру. Кроме того, я хочу платить по циклу процессора, а не за время безотказной работы. –

Смежные вопросы