使用 Azure CLI 将文件共享装载到 Python 函数应用

此 Azure Functions 示例脚本会创建一个函数应用,并会在 Azure 文件存储中创建一个共享。 然后,它会装载共享,使函数可以访问数据。

备注

创建的函数应用在 Python 版本 3.7 上运行。 Azure Functions 也支持 Python 版本 3.6 和 3.8

如果没有 Azure 订阅,可在开始前创建一个试用帐户

先决条件

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅登录 Azure CLI

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  • 本教程需要 Azure CLI 版本 2.0 或更高版本。

示例脚本

此脚本使用消耗计划在 Azure Functions 中创建函数应用。

#!/bin/bash

# Function app and storage account names must be unique.
export AZURE_STORAGE_ACCOUNT=mystorageaccount$RANDOM
functionAppName=myserverlessfunc$RANDOM
region=chinanorth2
pythonVersion=3.7 #3.6 also supported
shareName=myfileshare
directoryName=mydir
shareId=myshare$RANDOM
mountPath=/mounted

# Create a resource group.
az group create --name myResourceGroup --location $region

# Create an Azure storage account in the resource group.
az storage account create \
  --name $AZURE_STORAGE_ACCOUNT \
  --location $region \
  --resource-group myResourceGroup \
  --sku Standard_LRS

# Set the storage account key as an environment variable. 
export AZURE_STORAGE_KEY=$(az storage account keys list -g myResourceGroup -n $AZURE_STORAGE_ACCOUNT --query '[0].value' -o tsv)

# Create a serverless function app in the resource group.
az functionapp create \
  --name $functionAppName \
  --storage-account $AZURE_STORAGE_ACCOUNT \
  --consumption-plan-location $region \
  --resource-group myResourceGroup \
  --os-type Linux \
  --runtime python \
  --runtime-version $pythonVersion \
  --functions-version 2

# Work with Storage account using the set env variables.
# Create a share in Azure Files.
az storage share create \
  --name $shareName 

# Create a directory in the share.
az storage directory create \
  --share-name $shareName \
  --name $directoryName

az webapp config storage-account add \
  --resource-group myResourceGroup \
  --name $functionAppName \
  --custom-id $shareId \
  --storage-type AzureFiles \
  --share-name $shareName \
  --account-name $AZURE_STORAGE_ACCOUNT \
  --mount-path $mountPath \
  --access-key $AZURE_STORAGE_KEY

az webapp config storage-account list \
  --resource-group myResourceGroup \
  --name $functionAppName

  

清理部署

运行示例脚本后,可以使用以下命令删除资源组以及与其关联的所有资源。

az group delete --name myResourceGroup

脚本说明

表中的每条命令均链接到特定于命令的文档。 此脚本使用以下命令:

Command 说明
az group create 创建用于存储所有资源的资源组。
az storage account create 创建 Azure 存储帐户。
az functionapp create 创建 Function App。
az storage share create 在存储帐户中创建 Azure 文件存储共享。
az storage directory create 在共享中创建目录。
az webapp config storage-account add 将共享装载到函数应用。
az webapp config storage-account list 显示装载到函数应用的文件共享。

后续步骤

有关 Azure CLI 的详细信息,请参阅 Azure CLI 文档

可以在 Azure Functions 文档中找到其他 Azure Functions CLI 脚本示例。