你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何在使用标准消耗和专用计划的 Azure Spring Apps 中启用你自己的持久性存储

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用

本文适用于:✔️ 标准消耗和专用(预览版)❌ 基本/标准 ❌ 企业

本文介绍了如何在 Azure Spring Apps 中启用自己的持久性存储。

自己的存储和 Azure Spring Apps 中的内置持久存储在以下方面有所不同:

  • 在内置存储中,应用程序生成的项目将上传到 Azure 存储帐户中。 在自己的存储中,应用程序生成的项目将上传到你控制的存储帐户中。

  • 在内置存储中,Microsoft Azure 控制这些项目的静态加密和生存期管理策略。 在自己的存储中,静态加密策略、生存期管理策略和网络访问将由你控制。

还可以将自己的持久性存储装载到 Azure Spring Apps,以及环境中的其他服务实例,例如 Azure 容器应用。 此功能可能实现是因为 Azure Spring Apps 实例部署在 Azure 容器应用环境中。

先决条件

设置环境

使用以下命令将以下变量设置为资源和当前区域设置的名称。

export RESOURCE_GROUP="<resource-group-name>"
export LOCATION="eastus"
export AZURE_CONTAINER_APPS_ENVIRONMENT="<Azure-Container-Apps-environment-name>"
export AZURE_SPRING_APPS_INSTANCE="<Azure-Spring-Apps-instance-name>"
export APP_NAME="<Spring-app-name>"

设置存储帐户

使用以下步骤创建一个存储帐户并建立文件共享以装载到 Spring 应用。

  1. 使用以下命令创建 Azure 存储帐户。 STORAGE_ACCOUNT_NAME 变量包括随机生成的后缀,以确保唯一性。

    export STORAGE_ACCOUNT_NAME="myasastorageaccount$RANDOM"
    
    az storage account create \
        --resource-group $RESOURCE_GROUP \
        --name $STORAGE_ACCOUNT_NAME \
        --location "$LOCATION" \
        --kind StorageV2 \
        --sku Standard_LRS \
        --query provisioningState \
        --enable-large-file-share
    

    此命令在成功完成后返回成功消息。

  2. 使用以下命令创建 Azure 存储文件共享:

    export FILE_SHARE_NAME="<file-share-name>"
    
    az storage share-rm create \
        --resource-group $RESOURCE_GROUP \
        --storage-account $STORAGE_ACCOUNT_NAME \
        --name $FILE_SHARE_NAME \
        --quota 1024 \
        --enabled-protocols SMB \
        --output table
    
  3. 使用以下命令获取存储帐户密钥:

    export STORAGE_ACCOUNT_KEY=$(az storage account keys list \
        --account-name $STORAGE_ACCOUNT_NAME \
        --query "[0].value" \
        --output tsv)
    

    在 Azure 容器应用环境中创建存储链接需要存储帐户密钥。

通过使用以下命令在 Azure 容器应用环境中创建存储链接。 az containerapp env storage set命令在环境和通过 az storage share-rm 命令创建的文件共享之间创建链接。

export STORAGE_MOUNT_NAME="<storage-account-name>"

az containerapp env storage set \
    --resource-group $RESOURCE_GROUP \
    --name $AZURE_CONTAINER_APPS_ENVIRONMENT \
    --storage-name $STORAGE_MOUNT_NAME \
    --azure-file-account-name $STORAGE_ACCOUNT_NAME \
    --azure-file-account-key $STORAGE_ACCOUNT_KEY \
    --azure-file-share-name $FILE_SHARE_NAME \
    --access-mode ReadWrite \
    --output table

现在,存储帐户和环境已链接,可以在 Azure Spring Apps 实例中使用存储装载。

将存储添加到应用

选择使用以下命令将持久性存储添加到现有应用:

az spring app append-persistent-storage \
    --resource-group $RESOURCE_GROUP \
    --service $AZURE_SPRING_APPS_INSTANCE \
    --name $APP_NAME \
    --persistent-storage-type AzureFileVolume \
    --mount-path /var/log/nginx \
    --storage-name $STORAGE_MOUNT_NAME

清理资源

当不再需要在本文中创建的资源时,请务必将其删除。 若要删除资源,只需删除包含它们的资源组即可。 可使用 Azure 门户删除资源组。 也可在要通过 Azure CLI 删除资源组的情况下使用以下命令:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

后续步骤