2016-12-15 1 views
6

私は 'ネット上で利用可能にする必要があるコードを持っています。 HTTP APIを使用したAWS Lambdaには、ステートレスで副作用のない、CPU集中型の機能、blob in、blob outといった機能に最適です。これは、C#/。NETで書かれていますが、が、それは、純粋な.NETありません、それはUWP APIを利用しています、したがって、AWSのWindows上でのサーバレスコンピューティング

AWS Lambdas only run on Linux hostsのWindows Server 2016、でもC#のものが必要です。この作品をサーバークラウドでAmazonクラウドに展開する方法はありますか?ラムダ以外のものでしょうか?私はEC2 VMと一緒に行くことができると知っていますが、これはサーバーレスアーキテクチャが発明された種類のものです。

答えて

4

ラムダは、AWS上のサーバーレスコンピューティングの唯一のオプションであり、ラムダ関数はLinuxマシン上でのみ実行されます。

Windowsマシンでサーバーレス機能を実行する必要がある場合は、Azure Functionsを試してください。それはMicrosoftクラウドのLambdaに相当します。 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経由でコードを展開する方法を学習します。その後、この記事を参照してください。あなたがコードの展開を呼び出して、後で作成したWindowsマシン上のバッチジョブを実行するためにAWSにPiplineを設定する方法を学ぶために

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

を(注意:あなたはおそらく代わりのGithubの S3を使用したいと思うでしょうこれはCodePipelineで可能です)。

私は、スクリプトを経由して、全体このような構成をブートストラップするために検討する - CLI AWSを使用して - あなたは、このように簡単にあなたのリソースをクリーンアップすることができますこのよう:

:AWS codepipeline削除-パイプラインを--name「MYJOB」

もちろん、aws webコンソール経由でパイプラインを設定し、定期的にコードを実行するようにパイプラインを設定することができます。

+1

CodeDeployはEC2インスタンスを意味しますか?私はサーバレスです。 –

+0

ok ..しかし、ラムダが本当にやっていることを考えてください..それは空気中のコードを実行していません..それはまたいくつかのec2を使用する必要があります – walkeros

+1

右、それはもう私の心配ではありません:)私のインフラストラクチャを維持しています。また、私は稼働時間ではなくCPUサイクルで支払いをしたいと思っています。 –