0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Functions] ローカルプロジェクトをデプロイ - Azure - Memo

Last updated at Posted at 2022-09-20

概要

(自分用メモ)
ローカルPCで作成したFunctionAppプロジェクトをデプロイ

目次: Azure Development

環境

ローカルPC上でAzure Portalにログイン済(az login)

Azure Portal上にリソース準備

リソースグループrg1,関数アプリapp230101関数,アプリ用ストレージsapp230101作成
RESGR=rg1
LOCATION=westus
FUNCAPP=fa230102
STORAGE=s$FUNCAPP
az group create -n $RESGR --location $LOCATION   # リソースグループ作成
az storage account create -n $STORAGE -g $RESGR  -l $LOCATION  # Functions用ストレージ作成
az functionapp create -n $FUNCAPP -c $LOCATION -g $RESGR --storage-account $STORAGE --os-type Linux --functions-version 4 --runtime node --runtime-version 20  # FunctionAppリソース作成
  • APIはURL(上記の場合 https://$FUNCAPP.azurewebsites.net)に生成される。
  • 指定しなければconsumption plan(従量課金)

WebでAzure Portalにログインしリソースが作成されていることを確認。

ローカルプロジェクト作成

例: Node.js用プロジェクト生成
func init . --worker-runtime node --language typescript
関数func1を生成
func new --template "Http Trigger" --name func1

サンプルコードsrc/functions/func1.tsが用意される。
local.settings.jsonは公開ダメ(.gitignoreの設定によってコミットされない)

ビルド

npm i
npx tsc
生成物
node_modules/*
dist/index.js

ローカルテスト

func start -p 7071

※: Azure Functions Emulatorでは 使えるnode.jsのバージョンが限定されるので注意。
ここでは 'v20.18.1' を使用。

ブラウザでhttp://localhost:7071/api/func1?name=Shokkaaを開き、Hello, Shokkaa!と応答あればOK.

クラウドにデプロイ

local.settings.json整備。

  • AzureWebJobsStorage: Function用ストレージへの接続キー
Function用ストレージへの接続キー採取
az storage account keys list --resource-group $RESGR --account-name $STORAGE
local.settings.json(例)
{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsStorage": "6yoM....=="
  }
}
デプロイ
func azure functionapp publish $FUNCAPP --publish-local-settings -y
テスト
wget -q -O - https://$FUNCAPP.azurewebsites.net/api/func1?name=Shokkaa
# Hello, Shokkaa! 表示されればOK

[参考]スクリプト

  1. クラウド上のリソース設定
  2. ローカルでのプロジェクト作成
  3. ローカルプロジェクトをデプロイ

VSCode の Azure Tools pluginを使用する場合

FunctionAppプロジェクトをローカルPCに作成

[Plugin]➔[Azure]➔[WORKSPACE]➔[+]➔[Create HTTP Function...]
➔[Select Language:] TypScript
➔[Create New HTTP Trigger:] (例)func1
api/func1以下に関数本体(index.ts)等が作成される

ローカルテスト

  1. F5押下しデバッグ実行
  2. ブラウザでhttp://localhost:7071/api/httpTriggerTest?name=abc開く

クラウドにデプロイ

事前にAzure PortalでFunctionAppを作成しておく(参照)
[Plugin]➔[Azure]➔[WORKSPACE]➔[Deploy to Function App...] FunctionsAppを選択

Azure PortalでアクセスURL取得(参照)

参照

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?