Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Lambda functions with C# 用の Dev Container T...

AWS Lambda functions with C# 用の Dev Container Template を作ってみた件

Presentation at VS Code Meetup #33 held on Junually 20, 2025.
https://vscode.connpass.com/event/340628/

Yuji Masaoka | まっぴぃ

January 20, 2025
Tweet

More Decks by Yuji Masaoka | まっぴぃ

Other Decks in Programming

Transcript

  1. VS Code Meetup #33 AWS Lambda functions with C# 用の

    Dev Container Template を作ってみた件
  2. What is the Dev Containers? ▪ VS Code の拡張機能の 1

    つ ▪ Docker コンテナ機能を利用 ▪ ホスト環境とは分離された統一された開発環境を構築・管理 ▪ あたかもローカルで動いているように操作 ▪ Windows / macOS / Linux などの OS を気にせずに利用
  3. Develop Lambda function with Dev Container ▪ Dev Container で

    Lambda も開発したい!という思いがきっかけ(by AWS 初心者) ▪ GitHub - ymasaoka/devcontainer-templates
  4. devcontainers.json { "name": "AWS Lambda (.NET)", "dockerComposeFile": "compose.yml", "service": "lambda",

    "workspaceFolder": "/workspace", "postCreateCommand": "dotnet tool install --global Amazon.Lambda.Tools && dotnet tool install --global Amazon.Lambda.TestTool- 8.0 && dotnet new install Amazon.Lambda.Templates && dotnet restore", "features": { "ghcr.io/devcontainers/features/aws-cli:1": { "version": "latest" }, "ghcr.io/devcontainers/features/docker-in-docker:2": { "moby": true, "installDockerBuildx": true, "installDockerComposeSwitch": true, "version": "latest", "dockerDashComposeVersion": "latest" } }, "customizations": { "vscode": { "extensions": [ "amazonwebservices.aws-toolkit-vscode", "ms-azuretools.vscode-docker", "ms-dotnettools.csharp", "ms-dotnettools.vscodeintellicode-csharp", "ms-dotnettools.csdevkit" ] } } }
  5. devcontainer-template.json { "id": "aws-lambda-dotnet", "version": "0.0.1", "name": "AWS Lambda (.NET)",

    "description": "Develop C# and .NET based AWS Lambda. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/ymasaoka/devcontainers-templates/tree/main/src/aws-lambda-dotnet", "publisher": "ymasaoka", "licenseURL": "https://github.com/ymasaoka/devcontainers-templates/blob/main/LICENSE", "options": { "imageVariant": { "type": "string", "description": ".NET Version:", "proposals": [ "8.0-bookworm", "6.0-bookworm", "6.0-bullseye" ], "default": "8.0-bookworm" } }, "platforms": [ "AWS Lambda", ".NET", ".NET Core", "C#" ] }
  6. What I learned by trying (1) ▪ 同僚などへの開発環境構築の説明が格段に楽になる(これ Clone してあとはよしなに..)

    ▪ AWS CLI に対する理解が深まった(けどまだまだ未熟) ▪ Docker コンテナレジストリに対する理解が深まった ▪ SDK などを提供している会社は、開発環境テンプレート公開に活用できそう ▪ いろいろな開発パターンに対応したテンプレートも作ってみたい
  7. What I learned by trying (2) ▪ C# Dev Kit

    拡張機能は 会社で使うときはライセンスがいる (Visual Studio と同じ形態) ※GitHub Codespaces は大丈夫 ▪ Dev Container Template を 利用する際は、拡張機能にも注意