⚡
Azure Functions 用に Save-Module する
一般的に、PowerShell で module を使うときには Install-Module
を叩くわけですが、Azure Functions の PowerShell 開発者向けガイド には以下のように書かれています。
まぁ確かに Functions が動くたびに Install-Module
してたら無駄だなという感じは分かります。
実際に試してみると意外とシンプルではなかったので手順を記載しておきます。
まず、これらのコマンドの実行環境ですが、Azure Portal 自体のコンソールでは PowerShell 環境が上がってこないので、Kudu から開く形になります。
Kudu > Debug console > PowerShell と進みます。
で、Save-Module
を叩こうと思っても Nuget がないと怒られるのでこれを解消します。
Install-PackageProvider
すればいいはずなんですがまたこれがエラーを吐きます。
んで、結果としては TLS 1.2 への対応かー、という感じでした。
PS C:\home> cd site\wwwroot
PS C:\home\site\wwwroot> mkdir modules
PS C:\home\site\wwwroot> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
PS C:\home\site\wwwroot> Install-PackageProvider nuget -Force -Scope CurrentUser
PS C:\home\site\wwwroot> Save-Module Az.DesktopVirtualization -Path .\modules
modules
フォルダに PowerShell module があれば自動的に読み込んでくれるので、明示的に Import-Module
を叩かなくてもいいような感じです。
2022-05-27T12:52:08.977 [Information] INFORMATION: Loaded Module 'Az.DesktopVirtualization'
ちなみにこれは Functions を作るときに同時に作られる Storage Account の Files 領域に保存されています。
参考サイトはこちらなど。
- 開発ガイドにはそれ以外にもいっぱい参考になる内容が書いてあります
-
そもそもなんかアクセスできなくなっちゃったのでコメントアウトSave-Module
の使い方的なところ
- TLS 1.2 周りの対応
Discussion