LoginSignup
0
1

More than 3 years have passed since last update.

LinuxベースのAzure Function Appの作り方(CLIベースでの開発方法)

Posted at

なに?

Azure Function App / Functions(AWSでいうところのLambda)をCLIベースで開発するためのTipsです。

本当に簡単なものであればブラウザ上のエディタだけでできてしまってCLI使う必要もないのですが……場合によってはそうもいかないケースがあります。例えば、OS で LinuxベースのFunctionsが作りたい時などです。その場合にはブラウザ上のエディタが使えません。

手順

Azure管理ポータルから普通にFunction Appを作成します。
今回は OS:Linux で Node.js のものを作ります。

出来上がったFunctions Appから新しい関数を追加します。

image.png

今回はできるだけ簡単に済ませたいので任意のエディター+Coreでやります。

image.png

するといくつか画面にコマンドができますので基本的にはこの通りにやっていけばよいです。

ここからはローカルのPCでの作業になります。

ここで1つTipsはWindowsで作業するのであればPowerShellを使う、ただそれだけです。まだまだPowerShellになじみのない人がいそうですがなじみましょう。それが早道です。

まずは、Core Toolsというものをインストールします。

npm install -g azure-functions-core-tools

npmを使ってますのでもちろんNode.jsが必要です。
次に適当な作業フォルダに移ってさっきインストールしたCote Toolsfuncコマンドを使って初期設定もろもろを行います。

func init

次に関数のテンプレートを作ります。

func new

とすると色々選択肢がでてきますので選択していきます。または以下のようなコマンドを使うと一発で作ることもできます。

func new --name applicationname --template "HttpTrigger"

するとローカルに applicationname のフォルダが出来て index.js などが出来上がりますので、好きなように編集します。npm install などもここで作った applicationname 内で実行してください。

ローカルでテストしたければ以下のコマンドをいれてください。

func start

何か色々と出た後に、

Http Functions:

        crawlnewsclip: [GET,POST] http://localhost:7071/.....

と出てきますのでブラウザやcurlでアクセスするとテストすることができます。

この時に func start でエラーになる人がたまにいます(わたしとか)。これはだいたい Proxy が原因です。 Proxyが設定してあるとlocalhostへのアクセスができないためか func start でエラーになってしまうみたいです。

PowerShellであれば $env:HTTP_PROXY $env:HTTPS_PROXY で設定確認して、Remove-Item Env:HTTP_PROXY Remove-Item Env:HTTPS_PROXY とかで環境変数削除して試してみてください。

テストも完了したところでAzureへデプロイします。

func azure functionapp publish {Functionの名前}

このコマンドをうつ場所だけ気を付けてください。
func initで作ったフォルダ内です。 func newで作った関数のフォルダの中ではありません。

しばらく何か画面が出た後で処理が終わります。

こんなエラーが出る場合があると思います、というか普段Azure CLI使わない人はたぶん出ます。

Unable to connect to Azure. Make sure you have the `az` CLI or `Az.Accounts` PowerShell module installed and logged in and try again

その場合にはAzureコマンドラインインタフェイスをインストールして、ログインを行ってください。
https://docs.microsoft.com/ja-jp/cli/azure/?view=azure-cli-latest
ここを参考にインストールしてから、

az login

でログインを行った後に再度 func... publish... でデプロイ行ってください。

無事にコマンドが完了したらAzure管理ポータルが確認してみてください。

関数が無事にできているのが確認できます。

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