Azure MinIO 网关

MinIO 是一个对象存储服务器,它公开 S3 兼容的 API,它具有网关功能,允许将请求代理到 Azure Blob 存储。为了设置我们的网关,我们将在 Linux 上使用 Azure 的 Web 应用程序。

首先,请确保已安装 Azure CLI 并已登录(az login)。如果没有,还需要创建 资源组

az group create --name "gitlab-azure-minio" --location "WestUS"

存储账号

在您的资源组中创建存储账号,存储账号的名称必须全局唯一:

az storage account create \
    --name "gitlab-azure-minio-storage" \
    --kind BlobStorage \
    --sku Standard_LRS \
    --access-tier Cool \
    --resource-group "gitlab-azure-minio" \
    --location "WestUS"

检索存储账号的账号密钥:

az storage account show-connection-string \
    --name "gitlab-azure-minio-storage" \
    --resource-group "gitlab-azure-minio"

输出应采用以下格式:

{
    "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=gitlab-azure-minio-storage;AccountKey=h0tSyeTebs+..."
}

在 Linux 的 Web App 上部署 MinIO

首先,我们需要在同一个资源组中创建一个应用服务计划。

az appservice plan create \
    --name "gitlab-azure-minio-app-plan" \
    --is-linux \
    --sku B1 \
    --resource-group "gitlab-azure-minio" \
    --location "WestUS"

创建一个配置了 minio/minio Docker 容器的 Web 应用程序,您指定的名称将用于 Web 应用程序的 URL:

az webapp create \
    --name "gitlab-minio-app" \
    --deployment-container-image-name "minio/minio" \
    --plan "gitlab-azure-minio-app-plan" \
    --resource-group "gitlab-azure-minio"

现在应该可以通过 https://gitlab-minio-app.azurewebsites.net 访问 Web 应用程序。

最后,我们需要设置启动命令并创建环境变量来存储我们的存储账号名称和密钥,以供 Web 应用程序使用,MINIO_ACCESS_KEYMINIO_SECRET_KEY

az webapp config appsettings set \
    --settings "MINIO_ACCESS_KEY=gitlab-azure-minio-storage" "MINIO_SECRET_KEY=h0tSyeTebs+..." "PORT=9000" \
    --name "gitlab-minio-app" \
    --resource-group "gitlab-azure-minio"

# Startup command
az webapp config set \
    --startup-file "gateway azure" \
    --name "gitlab-minio-app" \
    --resource-group "gitlab-azure-minio"

结论

您可以继续将此网关与具有 s3 兼容性的任何客户端一起使用。 您的 Web 应用程序 URL 是 s3 endpoint,存储账号名称是 accesskey,而存储账号密钥将是 secretkey

参考

本指南改编自 Alessandro Segala's blog post on same topic