使用 "When a blob is added or modified (properties only) (V2)" 时检索多个 blob

Retrieving more than one blob when using "When a blob is added or modified (properties only) (V2)"

我在别处有一个自动任务,它在 Azure Blob 存储容器中创建 2 个文件:

完成此操作后,我将启动一个使用触发器“添加或修改 blob 时(仅限属性)(V2)”的逻辑应用程序

如您所见,我将 return 的 blob 数量设置为 2,如果我们查看设置,我会关闭“拆分”:

然而,当触发逻辑应用程序时,它一次只检索数组中的 1 个文件:

我的逻辑应用程序的其余部分设置为处理和排列 - 因为最终游戏是发送一封包含附件列表的电子邮件,但考虑到这是如何触发的,最终会收到 2 封电子邮件,每封电子邮件都有一个附件.

这个触发器应该是这样工作的吗?还是我哪里错了?

编辑:包括触发器代码:

您遇到这种情况的原因是您上传的文件数量太多。

要使这项工作成为解决方法之一,您可以使用间隔为 1 分钟的重复触发器并使用过滤器数组来获取在那一分钟内添加的 blob 列表。

在过滤器数组中,我只过滤那一分钟的实例。我在这里对 上次修改时间 greater than or equal to 操作使用的语法是 formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm:00Z').

然后我使用变量将结果列表存储在数组中,方法是为每个项目附加一个数组变量连接器。

然后我使用条件连接器检查我是否收到数组中的任何内容,然后使用 outlook 连接器发送 list of blobs。如果在那一分钟内没有内容或没有添加任何 blob,则进入错误部分,否则为真。

我在这里检查的条件是 listOfBlobs 数组的长度:- length(variables('listOfBlobs')) is not equal to 0

所以这是我在 listOfArray 变量的长度为 0 时收到的内容,它不会触发任何邮件,因为没有上传任何 blob 并进入错误部分。

这是我在 listOfArray 变量的长度不为 0 时收到的内容,它会触发包含 blob 内容的邮件。

这是我上传到我的存储帐户的内容:-

这是在我的收件箱中触发的邮件。

[{"pysamp.txt":"{\"Id\":\"<ID>",\"Name\":\"pysamp.txt\",\"DisplayName\":\"pysamp.txt\",\"Path\":\"/container2408/pysamp.txt\",\"LastModified\":\"2022-02-14T05:26:08Z\",\"Size\":58,\"MediaType\":\"text/plain\",\"IsFolder\":false,\"ETag\":\"\\"0x8D9EF7A8133FFF9\\"\",\"FileLocator\":\"JTJmY29udGFpbmVyMjQwOCUyZnB5c2FtcC50eHQ=\",\"LastModifiedBy\":null}\n"},
{"aaa.txt":"{\"Id\":\"<ID>\",\"Name\":\"aaa.txt\",\"DisplayName\":\"aaa.txt\",\"Path\":\"/container2408/aaa.txt\",\"LastModified\":\"2022-02-14T05:26:08Z\",\"Size\":8686,\"MediaType\":\"text/plain\",\"IsFolder\":false,\"ETag\":\"\\"0x8D9EF7A813F6FFB\\"\",\"FileLocator\":\"JTJmY29udGFpbmVyMjQwOCUyZmFhYS50eHQ=\",\"LastModifiedBy\":null}\n"}]

这是我的逻辑应用程序的代码视图

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Compose": {
                "inputs": "@variables('listOfBlobs')",
                "runAfter": {
                    "For_each_2": [
                        "Succeeded"
                    ]
                },
                "type": "Compose"
            },
            "Condition": {
                "actions": {
                    "Send_an_email_(V2)": {
                        "inputs": {
                            "body": {
                                "Body": "<p>@{outputs('Compose')}</p>",
                                "Subject": "Sample",
                                "To": "v-swethaka@microsoft.com"
                            },
                            "host": {
                                "connection": {
                                    "name": "@parameters('$connections')['office365']['connectionId']"
                                }
                            },
                            "method": "post",
                            "path": "/v2/Mail"
                        },
                        "runAfter": {},
                        "type": "ApiConnection"
                    }
                },
                "expression": {
                    "and": [
                        {
                            "not": {
                                "equals": [
                                    "@length(variables('listOfBlobs'))",
                                    0
                                ]
                            }
                        }
                    ]
                },
                "runAfter": {
                    "Compose": [
                        "Succeeded"
                    ]
                },
                "type": "If"
            },
            "Filter_array": {
                "inputs": {
                    "from": "@body('Lists_blobs_(V2)')?['value']",
                    "where": "@greaterOrEquals(item()?['LastModified'], formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm:00Z'))"
                },
                "runAfter": {
                    "Lists_blobs_(V2)": [
                        "Succeeded"
                    ]
                },
                "type": "Query"
            },
            "For_each_2": {
                "actions": {
                    "Append_to_array_variable": {
                        "inputs": {
                            "name": "listOfBlobs",
                            "value": {
                                "@items('For_each_2')?['DisplayName']": "@{items('For_each_2')}\n"
                            }
                        },
                        "runAfter": {},
                        "type": "AppendToArrayVariable"
                    }
                },
                "foreach": "@body('Filter_array')",
                "runAfter": {
                    "Initialize_variable": [
                        "Succeeded"
                    ]
                },
                "type": "Foreach"
            },
            "Initialize_variable": {
                "inputs": {
                    "variables": [
                        {
                            "name": "listOfBlobs",
                            "type": "array"
                        }
                    ]
                },
                "runAfter": {
                    "Filter_array": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Lists_blobs_(V2)": {
                "inputs": {
                    "host": {
                        "connection": {
                            "name": "@parameters('$connections')['azureblob']['connectionId']"
                        }
                    },
                    "method": "get",
                    "path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/foldersV2/@{encodeURIComponent(encodeURIComponent('JTJmY29udGFpbmVyMjQwOA=='))}",
                    "queries": {
                        "nextPageMarker": ""
                    }
                },
                "metadata": {
                    "JTJmY29udGFpbmVyMjQwOA==": "/container2408"
                },
                "runAfter": {},
                "type": "ApiConnection"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {
            "$connections": {
                "defaultValue": {},
                "type": "Object"
            }
        },
        "triggers": {
            "Recurrence": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 1
                },
                "type": "recurrence"
            }
        }
    },
    "parameters": {
        "$connections": {
            "value": {
                "azureblob": {
                    "connectionId": "/subscriptions/<YOUR_SUBSCRIPTION>/resourceGroups/<YOUR_RESOURCEGROUP>/providers/Microsoft.Web/connections/azureblob",
                    "connectionName": "azureblob",
                    "id": "/subscriptions/<YOUR_SUBSCRIPTION>/providers/Microsoft.Web/locations/northcentralus/managedApis/azureblob"
                },
                "office365": {
                    "connectionId": "/subscriptions/<YOUR_SUBSCRIPTION>/resourceGroups/<YOUR_RESOURCEGROUP>/providers/Microsoft.Web/connections/office365",
                    "connectionName": "office365",
                    "id": "/subscriptions/<YOUR_SUBSCRIPTION>/providers/Microsoft.Web/locations/northcentralus/managedApis/office365"
                }
            }
        }
    }
}