CLIを使用してServerless関数を作成して管理する方法
13248 ワード
私に従って、トピックや改善についてのご提案を取るに満足
この記事では以下を説明します.
なぜ、なぜ私たちは、UIを持っているときに我々の関数を管理するためにCLIを使用しますか?
何が、このCLIツール何を行うことができますか?
デモ、もちろん、我々はスピンのために我々のCLIツールを取り、それが正しく動作する方法を参照してくださいしたいですか? Sign up for a free Azure account
無制限のazure関数を作成するには、無料のazureアカウントが必要になります
私が書いた記事のコレクション.NET + Serverlessと他の何か
ポータルと同様にVSコードのオーサリング Core Tools Development
我々は、あなたが使用できるすべての可能なオプションで表面をひっくり返しました Create a function app using Azure CLI Install Azure CLI
Azure CLIは非常に有能で、あなたがポータルで行うことができるすべては、端末からできることです
CLIを使いたい理由がたくさんあります.
スクリプティング、より重要な理由の1つはおそらくci/cdプロセスで使用するスクリプトです.
速度、速度は別の要因であるかもしれません、端末でコマンドを走らせる速度
IDE/エディタagnostic、我々はすべての我々が使用するように好きな端末があります.時々我々がしたいことは、選択の我々のエディタでUIを通してすることができて、時々そうでありません
始める前に、CLIをインストールしましょう.これはあなたの選択のOSに応じて少し異なります.
必要なものは何か
マック
このCLIツールをインストールしました
を、私たちはかなりの長い答えを得たので、ページでページを見てみましょう.上記のように一般的に動作するようにすることができます.
Azure、我々はリソースを管理することができます
永続的な、これは私たちが今見ていないが、後の記事ではステキトフルServerless提供です
エクステンション、これは別の種類のバインディングをサポートしています
関数は、これを作成し、実行するような関数の周りのアクションについてです
ホスト、ローカルで関数を実行する方法
Kubernetes、Kubernetesの聞いた?違う?それはあなたがコンテナを編成するために使用できるものです.まだ混乱?それはOKです、私はKubernetes
設定は、我々は設定を管理することができるようにするには、データベースやアプリケーションを実行する必要がありますいくつかの他のキーへの接続文字列になる可能性があります
テンプレートを使用すると、関数を足し算したときに起動する必要があります.これはデータベースや誰かがHTTPエンドポイントを打つなどの変更かもしれません. ランニングから得た他のページをチェックしましょう
我々は4つの異なった行動を得た.
呼び出しで
新しい、呼ぶことによって
呼び出しによって
このコマンドを呼び出すと、実行中の関数からログを取得することができます
それで、我々は我々のデモで成し遂げたいですか?さて、
プロジェクトを開始する必要があります.私たちは別のプログラミングプラットフォームのための足場をどうやっていくか
足場の関数、もちろん、我々は足場機能をしたい.これには大きなウィザードがあります.
アプリケーションを実行すると、一度我々はすべての足場から、我々は我々のアプリを実行できるようにしましょう
Azure CLIを使用して、必要なリソースを作成し、関数app +関数をクラウドに展開します
あなただけのプロジェクトを開始することができます
上記のコマンドで
その他の可能な値
今、我々は決定した
関数を作成するには、入力してウィザードを起動します
上で見ることができるように、私たちは、テンプレートの後に、我々の機能の名前を求められます.これは予想を作成する
だから私の
それで、これは機能を足場にする唯一の方法ですか?いいえ、このウィザードをスキップして、そのようなフラグを使うことができます.
ので、我々は関数のアプリと機能を得た、それを実行するかどうかを確認してみましょう.我々のアプリを起動します
この関数は非常によく動作します.
ではなく、まだ比較的簡単です.
何をする必要があります:
あなたのサブスクリプションの機能アプリを作成し、この手順は4ステップで構成されます.それは多くのように聞こえるかもしれないが、あなたがこれをスクリプト化していると思う、それはそんなにではない.あなたが積極的に機能をオーサリングしているならば、あなたは
公開、これはあなたのアプリケーションを展開する簡単なコマンドです
我々は、次のものを作成する必要があります
リソースグループ、これはあなたのリソースの論理的なグループ化です
ストレージアカウントは、すぐにどこにazureでファイルを配置する必要があるとして、彼らはストレージアカウントに関連付けられている必要があります
サービスプラン、アプリケーションサービスプランは、Azureアプリサービスをホストする基になる仮想マシンから成ります.それは無料でプレミアムからいくつかのティアを持っています.アプリケーションサービス計画は、あなたのアプリケーションがホストされる物理的なサーバーの領域とストレージ、RAMの量、および物理的なサーバーが持つCPUを定義します
は、実際のServerlessアプリを作成する準備ができている上記の成果物を作成したことに基づいて、実際の機能アプリを作成します 開始する前に、Azure CLI経由でAzureにログインしてください.種類
つの変数を設定して起動します.
リソースグループを作成する
ので、私たちは目を見ることができる限り、私は、LIの国には、旅行をした.端末オプションは一般的にVSコードやIDEのように滑らかではないかもしれませんが、スクリプトを書くためにはほとんど意味がありません.次は、CI/CDパイプラインを設定する必要がありますし、アプリケーションの作成スクリプトを必要とも展開、覚えて
There are many ways to create Serverless functions with Azure Functions. We can use the Portal, VS Code but also the terminal and a Cli tool called
func
. We will focus on the latter in this article, so be prepared to go full terminal :)
この記事では以下を説明します.
なぜ、なぜ私たちは、UIを持っているときに我々の関数を管理するためにCLIを使用しますか?
何が、このCLIツール何を行うことができますか?
デモ、もちろん、我々はスピンのために我々のCLIツールを取り、それが正しく動作する方法を参照してくださいしたいですか?
資源
無制限のazure関数を作成するには、無料のazureアカウントが必要になります
私が書いた記事のコレクション.NET + Serverlessと他の何か
ポータルと同様にVSコードのオーサリング
我々は、あなたが使用できるすべての可能なオプションで表面をひっくり返しました
func
CLIAzure CLIは非常に有能で、あなたがポータルで行うことができるすべては、端末からできることです
なぜCLI
CLIを使いたい理由がたくさんあります.
スクリプティング、より重要な理由の1つはおそらくci/cdプロセスで使用するスクリプトです.
速度、速度は別の要因であるかもしれません、端末でコマンドを走らせる速度
IDE/エディタagnostic、我々はすべての我々が使用するように好きな端末があります.時々我々がしたいことは、選択の我々のエディタでUIを通してすることができて、時々そうでありません
何
始める前に、CLIをインストールしましょう.これはあなたの選択のOSに応じて少し異なります.
インストール
必要なものは何か
azure-functions-core-tools
. 以下はそれぞれのOSの指示です.マック
brew tap azure/functions
brew install azure-functions-core-tools
Windowsnpm i -g azure-functions-core-tools --unsafe-perm true
Linuxwget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb
Everything installed? Good :)
FUNCの概要
このCLIツールをインストールしました
func
. ランfunc --help
端末では、私たちのために何ができるかを理解しようとしましょう.を、私たちはかなりの長い答えを得たので、ページでページを見てみましょう.上記のように一般的に動作するようにすることができます.
Azure、我々はリソースを管理することができます
永続的な、これは私たちが今見ていないが、後の記事ではステキトフルServerless提供です
エクステンション、これは別の種類のバインディングをサポートしています
関数は、これを作成し、実行するような関数の周りのアクションについてです
ホスト、ローカルで関数を実行する方法
Kubernetes、Kubernetesの聞いた?違う?それはあなたがコンテナを編成するために使用できるものです.まだ混乱?それはOKです、私はKubernetes
設定は、我々は設定を管理することができるようにするには、データベースやアプリケーションを実行する必要がありますいくつかの他のキーへの接続文字列になる可能性があります
テンプレートを使用すると、関数を足し算したときに起動する必要があります.これはデータベースや誰かがHTTPエンドポイントを打つなどの変更かもしれません.
func --help
我々は4つの異なった行動を得た.
呼び出しで
func start
コードをビルドして実行します新しい、呼ぶことによって
func new
我々は、我々が使用したいテンプレートを求められている関数の作成プロセスをトリガします呼び出しによって
func init
我々は、我々は機能アプリのプロジェクトを作成することができますプロセスをトリガー、すべての機能は、このようなプロジェクトの中に住んでいる必要がありますこのコマンドを呼び出すと、実行中の関数からログを取得することができます
菅デモ
それで、我々は我々のデモで成し遂げたいですか?さて、
プロジェクトを開始する必要があります.私たちは別のプログラミングプラットフォームのための足場をどうやっていくか
足場の関数、もちろん、我々は足場機能をしたい.これには大きなウィザードがあります.
アプリケーションを実行すると、一度我々はすべての足場から、我々は我々のアプリを実行できるようにしましょう
Azure CLIを使用して、必要なリソースを作成し、関数app +関数をクラウドに展開します
プロジェクトを足場にする
あなただけのプロジェクトを開始することができます
func init NameOfProject
しかし、これはデフォルトの労働者ランタイムを与えるでしょうdotnet
. そのため、以下のように明示的に推奨します.上記のコマンドで
func init MyNodeApp --worker-runtime dotnet
それを作成します.ディレクトリ内のMyDotnetApp
, 私たちの名前は同じ名前のディレクトリを作成します.その他の可能な値
--worker-runtime
are dotnet, node, python, powershell
. 機能を足場に入れる
今、我々は決定した
--worker-runtime
そして、我々は我々のアプリの下で足場はスーツに従って、同じランタイムで作成される機能.関数を作成するには、入力してウィザードを起動します
func new
, 以下のように:上で見ることができるように、私たちは、テンプレートの後に、我々の機能の名前を求められます.これは予想を作成する
Get.cs
ファイル.ここで起こることは実行時によって決まる.JavaScriptの場合は、ディレクトリを取得しますGet
とindex.js
and function.json
.だから私の
Get.cs
ですね.
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace MyDotnetApp
{
public static class Get
{
[FunctionName("Get")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
name = name ?? data?.name;
return name != null
? (ActionResult)new OkObjectResult($"Hello, {name}")
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
}
}
それは私たちが慣れているようだ.価値があるのは認可がAuthorizationLevel.Function
, それで、我々がそれが欲しいならばAnonymous
or Admin
我々は常に後に変更することができます.それで、これは機能を足場にする唯一の方法ですか?いいえ、このウィザードをスキップして、そのようなフラグを使うことができます.
func new --template HttpTrigger --name Post
スクリプトされたシナリオでは、関数を作成する後者のバージョンを使用する可能性が高くなります.アプリを実行する
ので、我々は関数のアプリと機能を得た、それを実行するかどうかを確認してみましょう.我々のアプリを起動します
func start
, これは暗黙のうちに実行されるrestore
, その必要なパッケージを取得し、また、我々のアプリを構築します.我々は身近なところで終わるこの関数は非常によく動作します.
アジュールへの配備
What about deployment? Right-click, like the browser?
ではなく、まだ比較的簡単です.
何をする必要があります:
あなたのサブスクリプションの機能アプリを作成し、この手順は4ステップで構成されます.それは多くのように聞こえるかもしれないが、あなたがこれをスクリプト化していると思う、それはそんなにではない.あなたが積極的に機能をオーサリングしているならば、あなたは
Create
+ Publish
ステップは文字通りちょうど右クリックです公開、これはあなたのアプリケーションを展開する簡単なコマンドです
CLIを使用して関数のアプリケーションを作成する
我々は、次のものを作成する必要があります
リソースグループ、これはあなたのリソースの論理的なグループ化です
ストレージアカウントは、すぐにどこにazureでファイルを配置する必要があるとして、彼らはストレージアカウントに関連付けられている必要があります
サービスプラン、アプリケーションサービスプランは、Azureアプリサービスをホストする基になる仮想マシンから成ります.それは無料でプレミアムからいくつかのティアを持っています.アプリケーションサービス計画は、あなたのアプリケーションがホストされる物理的なサーバーの領域とストレージ、RAMの量、および物理的なサーバーが持つCPUを定義します
は、実際のServerlessアプリを作成する準備ができている上記の成果物を作成したことに基づいて、実際の機能アプリを作成します
az login
, あなたがわからないならば.つの変数を設定して起動します.
storageName=mystorageaccount$RANDOM
functionAppName=myappsvcpfunc$RANDOM
への呼び出し$RANDOM
我々はユニークな名前を得ることを保証します.リソースグループを作成する
az group create \
--name myResourceGroup \
--location westeurope
Azureストレージアカウントを作成するaz storage account create \
--name $storageName \
--location westeurope \
--resource-group myResourceGroup \
--sku Standard_LRS
アプリケーションサービスプランを作成するaz appservice plan create \
--name myappserviceplan \
--resource-group myResourceGroup \
--location westeurope
機能アプリの作成az functionapp create \
--name $functionAppName \
--storage-account $storageName \
--plan myappserviceplan \
--resource-group myResourceGroup
出版func azure functionapp publish $functionAppName
あなたが最後のコマンドを実行した後、それはあなたのアプリケーションの各機能のすべてのURLをリストに終了します.URLリンクの1つをクリックするとブラウザを回転させ、loughを見てみましょう.概要
ので、私たちは目を見ることができる限り、私は、LIの国には、旅行をした.端末オプションは一般的にVSコードやIDEのように滑らかではないかもしれませんが、スクリプトを書くためにはほとんど意味がありません.次は、CI/CDパイプラインを設定する必要がありますし、アプリケーションの作成スクリプトを必要とも展開、覚えて
func
and func --help
も.Reference
この問題について(CLIを使用してServerless関数を作成して管理する方法), 我々は、より多くの情報をここで見つけました https://dev.to/azure/how-you-can-create-and-manage-serverless-functions-using-a-cli-lnbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol