AWS

2016-12-15 65 views
6

'da Windows'ta sunucu bilgisizliği 'Net' üzerinden kullanmam gereken bir kod parçam var. Üstte bir HTTP API'sine sahip bir AWS Lambda için mükemmel bir uyum - vatansız, yan etki içermeyen, oldukça yoğun bir CPU yoğun fonksiyonu, blob in, blob out. Bu, C# /. NET ile yazılmış, ancak o saf NET değil o UWP API kullanır oluyor, bu nedenleAWS

AWS Lambdas only run on Linux hosts Windows Server 2016, hatta C# olanları gerektirir. Bu parçayı Amazon bulutunda sunucusuz bir şekilde dağıtmanın bir yolu var mı - belki de bir Lambda'dan başka bir şey? EC2 VM ile gidebileceğimi biliyorum, ama bu sunucusuz mimarinin icat ettiği çok şey.

cevap

4

Lambda, sadece Linux makinelerinde çalışan AWS ve Lambda işlevlerinde sunucusuz hesaplama için tek seçenektir.

Windows makinesinde sunucu işlevlerini çalıştırmanız gerekiyorsa, Azure Functions'u deneyin. Bu Microsoft bulutunda Lambda eşdeğeri. Bir Windows Server 2016 makinesinde çalışıp çalışmadığını ve platformla ilgili herhangi bir referans bulamadığından emin değilim, ancak yeni bir hizmet olarak kendi uç teknolojilerini kullandıklarını tahmin ediyorum.

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

Ben yıllık bazda CodeDeploy hizmet ve AWS CodePipeline kombinasyonu yoluyla bunu başarabilirsiniz düşünüyorum: platform bu işlevi deneyin gerekenler ise

onaylamak için.

bu makaleye bakın:

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

CodeDeploy yoluyla kodu dağıtımı hakkında bilgi edinmek için.

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

Kod Konuşlandırması'nı çağırmak için Pipline aws yapılandırabilirsiniz öğrenmek ve sonrası (yaratılan pencereler makinede notunu toplu iş çalıştırmak için: Daha sonra bu makaleye bakın muhtemelen S3 yerine Github kullanmak isteyeceksiniz - CodePipeline ile mümkündür).

Senaryonun yoluyla bütün bu tür yapılandırmayı bootstrap dikkate alacağını

- kullanan aws cli - kolayca temizlemek bu şekilde bu gibi kaynaklar:

: aws codepipeline silmek-boru hattı --name "benim görevim"

Elbette boru hattını aws web konsolu ile yapılandırabilir ve kodunuzu düzenli olarak çalıştıracak şekilde yapılandırılmış olan boru hattını terk edebilirsiniz.

+1

CodeDeploy, EC2 örneklerini ima eder, değil mi? Ben sunucusuzum. –

+0

tamam .. ama lambda'nın gerçekten ne yaptığını düşünün .. kodu havada yürütmüyor .. aynı zamanda biraz ec2 kullanmalıyım – walkeros

+1

Doğru, ama bu benim kaygım olmayacak artık :) :) altyapıyı korumak için zaman. Ayrıca, çalışma zamanı için değil, CPU döngüsüyle ödeme yapmak istiyorum. –