2017-12-19 18 views
4

AWS.Net SDK、.net core version 1.0を使用してラムダ関数を作成しました。私は依存性注入を実装したい。ラムダ関数はAWS環境で独立して起動され、実行されるため、Startupのようなクラスは存在しません。この実装を実現するにはどのようにしてコンテナを設定できますか?AWSでのDependency Injectionの使用方法Lambda C#の実装

+0

正直、これは可能ではないと思います。しかし私は間違っている可能性があります。 – Adosi

答えて

0

あなたはWebAPIのためのAWSサービスの依存性注入について話している場合は、dotnet new lambda.AspNetCoreWebAPIまたはVisual Studio経由AspNetCoreWebAPIテンプレートを使用している場合、それは可能であるが、このテンプレートはもちろん、各起動がラムダ環境ごとに一度実行されるスタートアップクラスを(持っている

青写真あなたが言ったように)。あなたのコントローラクラスは、これらのサービスは、あなたのAWSを含めることを確認しますので、環境変数から取得した資格情報を使用して開始され

IAmazonDynamoDB client; 
public ValuesController(IAmazonDynamoDB dbClient) 
{ 
    this.client = dbClient; 
} 

依存性の注入のためのコンストラクタを使用すると ConfigureServices

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(); 
    services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); 
    // Add service to obtain in Controllers constructor 
    services.AddAWSService<IAmazonDynamoDB>(); 
} 

でAWSサービスを追加追加しますプロファイルはappsettings.jsonにあります。 appsettings.jsonについてわからない場合や、ASPNETCORE_ENVIRONMENTに従ってプロファイルを宣言する方法については、コメントを残してください。

関連する問題