

# .zip ファイルアーカイブを使用して C\$1 Lambda 関数を構築し、デプロイする
<a name="csharp-package"></a>

.NET デプロイパッケージ (.zip ファイルアーカイブ) は、関数のコンパイル済みアセンブリと、そのアセンブリのすべての依存関係で構成されています。このパッケージには、`proj.deps.json` ファイルも含まれています。これは、関数のすべての依存関係と、.NET ランタイムを設定するために使用される `proj.runtimeconfig.json` ファイルを、.NET ランタイムに伝達します。

個々の Lambda 関数をデプロイするには、`Amazon.Lambda.Tools` .NET Lambda Global CLI を使用できます。`dotnet lambda deploy-function` コマンドを使用すると、.zip デプロイパッケージが自動的に作成され、Lambda にデプロイされます。ただし、.NET アプリケーションを AWS にデプロイするには、AWS Serverless Application Model (AWS SAM) や AWS Cloud Development Kit (AWS CDK) などのフレームワークを使用することをお勧めします。

サーバーレスアプリケーションは通常、Lambda 関数とその他のマネージド AWS のサービスを組み合わせて構成され、連携して特定のビジネスタスクを実行します。AWS SAM と AWS CDK は、Lambda 関数を大規模に他の AWS のサービスと組み合わせて構築し、デプロイするのを簡略化します。[AWS SAM テンプレート仕様](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html)は、サーバーレスアプリケーションを構成する Lambda 関数、API、アクセス許可、設定、およびその他の AWS リソースを記述するためのシンプルで簡潔な構文を提供します。[AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html) を使用すると、クラウドインフラストラクチャをコードとして定義し、最新のプログラミング言語と .NET などのフレームワークを使用して、信頼性が高く、スケーラブルで、コスト効率の高いアプリケーションをクラウドで構築することができます。AWS CDK と AWS SAM はどちらも、.NET Lambda Global CLI を使用して関数をパッケージ化します。

[.NET Core CLI を使用](csharp-package-cli.md#csharp-layers)することで、C\$1 の関数で [Lambda レイヤー](chapter-layers.md)を使用することは可能ですが、使用しないことをお勧めします。レイヤーを使用する C\$1 の関数では、[初期化フェーズ](lambda-runtime-environment.md#runtimes-lifecycle-ib) 中に共有アセンブリを手動でメモリに読み込みます。これにより、コールドスタート時間が長くなる可能性があります。代わりに、コンパイル時にすべての共有コードを含めて、実行時のアセンブリの読み込みによるパフォーマンスへの影響を回避してください。

AWS SAM、AWS CDK、および .NET Lambda Global CLI を使用して .NET Lambda 関数を構築およびデプロイする手順については、以下のセクションを参照してください。

**Topics**
+ [.NET Lambda Global CLI を使用する](csharp-package-cli.md)
+ [AWS SAM を使用した C\$1 Lambda 関数のデプロイ](csharp-package-sam.md)
+ [AWS CDK を使用した C\$1 Lambda 関数のデプロイ](csharp-package-cdk.md)
+ [ASP.NET アプリケーションのデプロイ](csharp-package-asp.md)