通过 Azure 数据工厂创建 blob 存储容器

Create blob storage container via Azure data factory

我正在开发一个使用 Azure 数据工厂和 Blob 存储的项目。我有一个要求,但不确定如何实现它。

要求:

#1 检查 blob 存储容器是否存在。 #2 通过 power shell 脚本在数据工厂中创建新容器。基本上,容器只会在管道 运行 第一次创建时创建。 #3 调用 API.

#1==> 我找到了检查方法 if blob exists, 但没有找到容器。

#2==> 通过强大的 shell 脚本从 Azure 数据工厂创建容器的最佳方式是什么:通过批处理?还是通过函数来​​做更好?

非常感谢您的提前帮助

正如post所说,我们可以使用GetMetadata activity 和If Condition activity 来检查blob 是否存在。如果 blob 不存在,我们可以使用 Azure 函数创建容器,并通过 http get 请求指定容器的名称。我觉得用Azure函数比较方便

例如,这里我在 Azure 函数中使用 nodejs。根据 Azure function javascript and Manage blobs with JavaScript v12 SDK in Node.js。我们可以开始一个项目了。

将依赖项添加到 nodejs 演示。

然后修改一些代码index.js以便我们可以管理blob容器(创建容器)。

const { BlobServiceClient } = require('@azure/storage-blob');


module.exports = async function (context, req) {

    const AZURE_STORAGE_CONNECTION_STRING = "<your_connect_string>";
    const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

    const name = (req.query.name || (req.body && req.body.name));

    const containerClient = blobServiceClient.getContainerClient(name);

    // Create the container
    const createContainerResponse = await containerClient.create();

    const responseMessage = name
        ? "Container:" + name + " has been created!"
        : "...";

    context.res = {
        // status: 200, /* Defaults to 200 */
        body: responseMessage
    };
}

部署到 Azure 函数后,我测试了代码,它运行良好。 容器已创建。