Core Tools を使用して関数を Azure に発行する
Core Tools を使用して、関数を Azure に発行できます。
単利関数を構築してテストしたら、次は Azure への発行です。 Web 上で稼働していることがわかります。 その場合は、どこからでも呼び出せるように、同僚に URL を送信します。
Function App を作成する
Core Tools を使ってプロジェクトを発行する前に、プロジェクトのホストに使われる関数アプリなど、必要なリソースを Azure 内に作成する必要があります。 関数にはストレージ アカウントも必要です。 このような Azure リソースを Core Tools を使って作成することはできません。 代わりに、Azure portal、Azure CLI、Azure PowerShell などの Azure 管理ツールを使って関数アプリを作成してください。 次の演習では、Azure CLI コマンド az functionapp create
を実行して、コードを発行できる関数アプリを作成します。
このチュートリアルの範囲内では、関数アプリを作成するときに考慮するべき最も重要なオプションは言語ランタイムです。 1 つの関数アプリでは、1 つの言語ランタイムのみがサポートされます。 発行するローカル関数プロジェクトが既にある場合は、必ず同じ言語ランタイムを使用して関数アプリを作成します。 ランタイムが異なるアプリにプロジェクトをデプロイしようとすると、エラーが発生して公開が停止されます。
Azure に発行する
関数プロジェクトを Azure の関数アプリに発行するには、関数プロジェクト フォルダーから func azure functionapp publish <app_name>
を実行します。 <app_name>
は Azure のターゲット関数アプリの名前であり、プロジェクト フォルダーの名前ではありません。これは異なる可能性があります。
Core Tools では、Azure へのサインインは求められません。 代わりに、サブスクリプションとリソースにアクセスするために、Azure CLI または Azure PowerShell からセッション情報が読み込まれます。 これらのツールのいずれかにアクティブなセッションがない場合、発行は失敗します。 Azure CLI や Azure PowerShell を使用せずに、Core Tools から公開することができます。 ただし、ある方が簡単です。 いずれかをインストールすることをお勧めします。 公開してみる前に、必ずサインインしてください。
発行が完了したことが出力に示されると、Azure で関数が稼働します。 最終的な発行の出力には、HTTP でトリガーされた各関数の呼び出し URL を含め、発行された関数が表示されます。
注意事項
Core Tools を使って関数を発行する場合は、次の点に注意してください。
- Core Tools では、発行時に関数コードの検証やテストは行われません。
- 発行する前に、必ず
func start
を使用してテストを行ってください。 - 発行すると、プロジェクトの内容がデプロイされる前に、ターゲット アプリに既に存在するすべての関数が停止および削除されます。
- このシーケンスで発行して複数のプロジェクトの関数を 1 つのアプリにまとめることはできません。
- アプリで必要な関数はすべて 1 つのプロジェクト内にある必要があります。
- Azure に公開しても、ローカル プロジェクトとターゲット関数アプリの間にどの種類のリレーションシップも作成されません。
- 1 つの関数プロジェクトを複数の関数アプリに発行できます。
- また、コードでの作業中に、プロジェクトを同じアプリに繰り返し再発行することもできます。
- 発行後に表示される呼び出し URL には、クエリ文字列に
code
パラメーターが含まれている場合があります。 - スクリーンショットで確認できます:
?code=4FowT1ywMNoxqa...
- HTTP トリガー関数には function の認可レベルがあり、要求ヘッダーまたはクエリ文字列でシークレット function キーを渡す必要があります。
- Core Tools は、便宜上、表示された URL のクエリ文字列でこのキーを返します。