Azure CLI での初めての関数の作成Create your first function using the Azure CLI

このクイックスタートでは、Azure Functions を使用して最初の関数を作成する方法について説明します。This quickstart topic walks you through how to use Azure Functions to create your first function. Azure CLI を使用して、関数をホストするサーバーレス インフラストラクチャである Function App を作成します。You use the Azure CLI to create a function app, which is the serverless infrastructure that hosts your function. 関数コード自体は、GitHub サンプル レポジトリからデプロイされます。The function code itself is deployed from a GitHub sample repository.

以下の手順は、Mac、Windows、または Linux コンピューターを使用して実行することができます。You can follow the steps below using a Mac, Windows, or Linux computer.

前提条件Prerequisites

このサンプルを実行する前に、以下が必要です。Before running this sample, you must have the following:

  • アクティブな GitHub アカウント。An active GitHub account.
  • 有効な Azure サブスクリプションAn active Azure subscription.

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell を開くOpen Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Cloud Shell には一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. [コピー] ボタンを選択してコードをコピーし、Cloud Shell に貼り付けて Enter キーを押すだけで、コードを実行することができます。Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Cloud Shell は、次のようにいくつかの方法で開くことができます。There are a few ways to open Cloud Shell:

コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. この記事の Cloud Shell
ブラウザーで Cloud Shell を開きます。Open Cloud Shell in your browser. https://shell.azure.com/bash
Azure Portal の右上隅にあるメニューの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. ポータルの Cloud Shell

CLI をローカルにインストールして使用する場合、このトピックでは、Azure CLI バージョン 2.0 以降が必要です。If you choose to install and use the CLI locally, this topic requires the Azure CLI version 2.0 or later. お使いのバージョンを確認するには、az --version を実行します。Run az --version to find the version you have. インストールまたはアップグレードする必要がある場合は、「Azure CLI 2.0 のインストール」を参照してください。If you need to install or upgrade, see Install Azure CLI 2.0.

リソース グループの作成Create a resource group

az group create でリソース グループを作成します。Create a resource group with the az group create. Azure リソース グループとは、Function App、データベース、ストレージ アカウントなどの Azure リソースのデプロイと管理に使用する論理コンテナーです。An Azure resource group is a logical container into which Azure resources like function apps, databases, and storage accounts are deployed and managed.

次の例では、myResourceGroup という名前のリソース グループを作成します。The following example creates a resource group named myResourceGroup.
Cloud Shell を使用していない場合は、まず az login でサインインします。If you are not using Cloud Shell, sign in first using az login.

az group create --name myResourceGroup --location westeurope

通常は、現在地付近の地域にリソース グループおよびリソースを作成します。You generally create your resource group and the resources in a region near you. App Service プランがサポートされているすべての場所を表示するには、az appservice list-locations コマンドを実行します。To see all supported locations for App Service plans, run the az appservice list-locations command.

Azure Storage アカウントの作成Create an Azure Storage account

Functions は、関数に関する状態その他の情報を維持するために Azure Storage の汎用のアカウントを使用します。Functions uses a general-purpose account in Azure Storage to maintain state and other information about your functions. az storage account create コマンドを使用して作成したリソース グループ内に汎用のストレージ アカウントを作成します。Create a general-purpose storage account in the resource group you created by using the az storage account create command.

次のコマンドでは、<storage_name> プレースホルダーをグローバルに一意なストレージ アカウント名で置き換えます。In the following command, substitute a globally unique storage account name where you see the <storage_name> placeholder. ストレージ アカウント名の長さは 3 ~ 24 文字で、数字と小文字のみを使用できます。Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only.

az storage account create --name <storage_name> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

ストレージ アカウントの作成後に、Azure CLI によって次の例のような情報が表示されます。After the storage account has been created, the Azure CLI shows information similar to the following example:

{
  "creationTime": "2017-04-15T17:14:39.320307+00:00",
  "id": "/subscriptions/bbbef702-e769-477b-9f16-bc4d3aa97387/resourceGroups/myresourcegroup/...",
  "kind": "Storage",
  "location": "westeurope",
  "name": "myfunctionappstorage",
  "primaryEndpoints": {
    "blob": "https://myfunctionappstorage.blob.core.windows.net/",
    "file": "https://myfunctionappstorage.file.core.windows.net/",
    "queue": "https://myfunctionappstorage.queue.core.windows.net/",
    "table": "https://myfunctionappstorage.table.core.windows.net/"
  },
     ....
    // Remaining output has been truncated for readability.
}

Function App を作成するCreate a function app

関数の実行をホストするための Function App が存在する必要があります。You must have a function app to host the execution of your functions. Function App は、関数コードのサーバーレス実行の環境を提供します。The function app provides an environment for serverless execution of your function code. Function App を使用すると、リソースの管理、デプロイ、共有を容易にするためのロジック ユニットとして関数をグループ化できます。It lets you group functions as a logic unit for easier management, deployment, and sharing of resources. Function App の作成には、az functionapp create コマンドを使用します。Create a function app by using the az functionapp create command.

次のコマンドでは、<app_name> プレースホルダーを一意の Function App 名で、<storage_name> をストレージ アカウント名で置き換えます。In the following command, substitute a unique function app name where you see the <app_name> placeholder and the storage account name for <storage_name>. <app_name> は、Function App の既定の DNS ドメインとして使用されます。そのため、名前は Azure のすべてのアプリ間で一意である必要があります。The <app_name> is used as the default DNS domain for the function app, and so the name needs to be unique across all apps in Azure. deployment-source-url パラメーターは、HTTP によってトリガーされる "Hello World" 関数を含む GitHub のサンプル リポジトリです。The deployment-source-url parameter is a sample repository in GitHub that contains a "Hello World" HTTP triggered function.

az functionapp create --deployment-source-url https://github.com/Azure-Samples/functions-quickstart  \
--resource-group myResourceGroup --consumption-plan-location westeurope \
--name <app_name> --storage-account  <storage_name>  

consumption-plan-location パラメーターを設定すると、従量課金ホスティング プランで Function App がホストされます。Setting the consumption-plan-location parameter means that the function app is hosted in a Consumption hosting plan. このプランでは、関数からの要求に応じてリソースが動的に追加され、関数が実行中のときだけ課金されます。In this plan, resources are added dynamically as required by your functions and you only pay when functions are running. 詳細については、「Azure Functions の適切なサービス プランを選択する」を参照してください。For more information, see Choose the correct hosting plan.

Function App が作成されると、Azure CLI によって次の例のような情報が表示されます。After the function app has been created, the Azure CLI shows information similar to the following example:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "containerSize": 1536,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "quickstart.azurewebsites.net",
  "enabled": true,
  "enabledHostNames": [
    "quickstart.azurewebsites.net",
    "quickstart.scm.azurewebsites.net"
  ],
   ....
    // Remaining output has been truncated for readability.
}

関数をテストするTest the function

cURL を使用して、Mac または Linux コンピューターで、または Windows で Bash を使用して、デプロイした関数をテストします。Use cURL to test the deployed function on a Mac or Linux computer or using Bash on Windows. 次の cURL コマンドを実行します。<app_name> プレースホルダーを Function App の名前に置き換えます。Execute the following cURL command, replacing the <app_name> placeholder with the name of your function app. URL にクエリ文字列 &name=<yourname> を追加します。Append the query string &name=<yourname> to the URL.

curl http://<app_name>.azurewebsites.net/api/HttpTriggerJS1?name=<yourname>

ブラウザーに表示された関数の応答。

コマンド ラインで使用可能な cURL がない場合は、Web ブラウザーのアドレスに同じ URL を入力します。If you don't have cURL available in your command line, enter the same URL in the address of your web browser. 再度、<app_name> プレースホルダーを関数アプリの名前に置き換え、URL にクエリ文字列 &name=<yourname> を追加して、要求を実行します。Again, replace the <app_name> placeholder with the name of your function app, and append the query string &name=<yourname> to the URL and execute the request.

http://<app_name>.azurewebsites.net/api/HttpTriggerJS1?name=<yourname>

ブラウザーに表示された関数の応答。

リソースのクリーンアップClean up resources

このコレクションの他のクイックスタートは、このクイックスタートに基づいています。Other quickstarts in this collection build upon this quickstart. 引き続きクイックスタートまたはチュートリアルの作業を行う場合は、このクイックスタートで作成したリソースをクリーンアップしないでください。If you plan to continue on to work with subsequent quickstarts or with the tutorials, do not clean up the resources created in this quickstart. 作業する予定がない場合は、次のコマンドを使用して、このクイックスタートで作成したすべてのリソースを削除してください。If you do not plan to continue, use the following command to delete all resources created by this quickstart:

az group delete --name myResourceGroup

確認を求められたら「y」と入力します。Type y when prompted.

次のステップNext steps

Azure Functions Core Tools を使用したローカルでの Azure Functions の開発方法について確認します。Learn more about developing Azure Functions locally using the Azure Functions Core Tools.