LoginSignup
0
1

Codespacesを使用してAzure Functionsの開発準備をしてみた

Last updated at Posted at 2022-07-03

はじめに

GitHub Codespaces を使えるようになったので、興味本位でC#を使ったAzure Functionsの開発環境を構築してみました。
ニッチなケースだと思いますが、誰かの助けになれば幸いです。

(2024/04 更新)

  • .devcontainer のファイル形式が古かったので更新
  • .Net6 のインプロセスから .Net8 分離ワーカープロセスに更新

前提条件

  • GitHub にサインアップし、リポジトリを作成していること
  • GitHub Codespaces が利用できること
  • (ローカルで作業したい場合)VSCode をインストールしていること

Codespaces の設定ファイルを作成

  1. テンプレートを参考に devcontainer.json を作成します。
  2. コマンドパレット(Ctrl+Shift+P)を開き、Codespaces: Add Container Configuratuin Filesを選択する。image.png
  3. 既存ファイルの変更を選択します。
    image.png
  4. 以下のツールを選択します。
    • Dotnet CLI
    • Azure Functions Core Tools
  5. 拡張機能を追加でインストールするために、extensionsに拡張機能 ID を追加する。
    拡張機能 ID は歯車から取得できる。image.png

最終的に作成したファイルはこちらになります。
必要なツールは devcontainer.json のみで完結したかったので、 エミュレーターの Azurite の拡張機能をインストールするようにしています。

devcontainer.json
{
  "name": "Azure Functions & C#",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/devcontainers/features/dotnet:2": {
      "version": "8.0"
    },
    "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": {
      "version": "latest"
    }
  },
  "customizations": {
    "vscode": {
      "extensions": [
        "Azurite.azurite",
        "ms-azuretools.vscode-azurefunctions",
        "ms-dotnettools.csharp"
      ]
    }
  }
}

Functionsデバッグ手順

  1. CodeCreate codespace on main を選択する。
    初めて利用する場合 GitHub Codespaces の拡張機能のインストールが求められるのでインストールする。image.png
  2. VSCode が起動したら、以下の拡張機能をインストールする。
  3. Azure 拡張機能の WORKSPACE から Create Function... をクリックする。image.png
  4. プロジェクト作成時に Functions を開発する言語をする。(ここでC#を選択)image.png
  5. 自動作成される関数のトリガーを選択し(ここではテストのためにHTTPトリガーを選択)、プロジェクトの作成が開始されるまで Enter を押す。image.png
  6. コマンドパレットから Azurite を起動する。
  7. VSCode の Run and Debug からデバッグを実行する。
    このとき Attach to .NET Functions になっていることを確認。image.png
  8. ターミナルに以下が表示され Functions が立ちあがったら、HTTP リクエストを送り、レスポンスが正常に返ってくればリモートリポジトリにプッシュして作業完了。image.png
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1