Azure Functions+Visual Studio Codeによるデプロイを試みる(Python&PowerShell編)

さて、VS CodeとAzure FunctionsによるAPI構築を試してみようシリーズ。
何回かに分けて書いてきましたが、とりあえず今回で終了としたいと思います(冒頭に書く言葉ではないような。。)。
一気にDevOpsへ進もうとも思ったのですが、他にも言語が残っているのに中途半端に終わってしまうのもアレかなということで残りの2つ、PythonとPowerShellを一気にやってしまいます。

Pythonも作成手順としてはいつもの通りとなります。
今回のPythonでの要件としてはVS CodeのPython拡張機能、そして何よりも当然のことながらPythonをインストールする必要があります。

注意点としてはPythonのバージョンは最新が3.10.xになりますが、Functionでは3.6~3.9までが対象となりますのでご注意ください。

そして、プロジェクト作成途中においてPythonのEXEが置かれているパスを指定する必要がありますので、Pythonをインストールする際にメモっておいてください。
以下がそれになります。私が最初3.10.xを入れてしまったがために怒られているところでもあります。。

プロジェクト構成とコードは以下のようになります。

勉強不足を晒すようですが、Pythonのコードを改めて見るのは今回が初めてです。ifは「{ }」で囲まないんですね。。ちょっと調べてみると「インデントでスコープを認識している」と。なるほどー。
人気言語の1つであるPython。今後私のお仕事でも関わる可能性があるのでしょうか。

あとはいつも通りVS Code上でFunctionを作成・デプロイし、Postmanで試してみると以下のようにちゃんと応答を返します。簡単簡単。

では次にPowerShellを。
Microsoftのオンラインドキュメントには今回のFunctionsによるサンプルプロジェクトの一例としてPowerShellも載っているわけなのですが、今までお仕事の中でもPowerShellはちょっとAzureをいじるために触ってきた程度でした。
なので、PowerShellでAPIが作れるの?というPowerShell使いの方々に怒られそうなことを思いつつ、サンプルプロジェクトの作成までやってみました。
以下がPowerShellでのプロジェクト構成とそのコードです。
(急に背景色を変えてしまってすみません)

なるほど、PowerShellだとこう書くんですね。。
ローカルでの実行やAzureへのデプロイ・実行は割愛します。

ということで、後半は駆け足になりましたが、C#、Java、JavaScript、Typescript、Python、PowerShellとさまざまな言語で試してみました。
それぞれちょっとしたつまづきはあったものの、それを除けば環境構築自体はいずれも非常に簡単で、1時間以内で構築可能です。
VS Code自体も恐らく皆さんご存じの通り非常に軽量かつ高速で、サクサク作業を進めることができました。

そして、あまりにも問題が発生せず、それゆえに普通のこととして捉えていたのですが、Azure側の環境構築・設定が全く必要が無かったこと。
これには改めて感心しました。
Functionsはまだそれほどなのですが、App Serviceは結構お仕事の中で触ってきましたので、今更PaaSの便利さに驚くのも「お前は何年Azureで飯を食ってるんだ」と言われそうなのですが、AzureをC#メインでやってきた自分にとって上に挙げたあらゆる言語が全てFunctionsというリソース上ですんなりと動く、その当たり前?のことに「すごいものだなー。。」と思い知った次第です。
クラウド便利。Azure便利。

さて、次はDevOpsも絡めて試してみようと思いますが、ここ最近、お仕事の忙しさもあり、少々楽をしていた部分、とりあえず記事を書いてしまえばいいんじゃないかという部分があったことも否めません。
ただ、ここまで書き続けてきたのも私にとっては結構すごいことでして、これについてはまたどこかで投稿したいと思います。
とはいえ、やっぱりもう少し新しいことであったり、Functionsにしても上っ面だけではなくて、未知の更に深い部分に踏み込まないとダメじゃね?とも思ってきましたので、並行して今後のネタやら、内容の書き方等も考えていきたいと思います。

よいネタがあればいきなりそれを書いてみるということもあるかもしれません。兎にも角にもAzureの勉強を続けていきます。





この記事が気に入ったらサポートをしてみませんか?