#powershell #azure-functions #azure-blob-storage
#powershell #azure-функции #azure-blob-хранилище
Вопрос:
Я пытаюсь установить (изменить) имя файла большого двоичного объекта в функции Azure с помощью powershell.
Он отлично работает благодаря function.json
{
"bindings": [
{
"name": "InputBlob",
"type": "blobTrigger",
"direction": "in",
"path": "container-src/{name}.{ext}",
"connection": "stacqadbdev_STORAGE"
},
{
"name": "OutputBlob",
"type": "blob",
"direction": "out",
"path": "container-dest/{name}",
"connection": "stacqadbdev_STORAGE"
}
]
}
это просто «копирование» имени большого двоичного объекта в другой контейнер.
Как только я захочу изменить destinations blobname на что-то, что вычисляется в моей функции, я терплю неудачу.
Я попытался установить
{
"bindings": [
{
"name": "InputBlob",
"type": "blobTrigger",
"direction": "in",
"path": "container-src/{name}",
"connection": "stacqadbdev_STORAGE"
},
{
"name": "OutputBlob",
"type": "blob",
"direction": "out",
"path": "container-dest/{newname}",
"connection": "stacqadbdev_STORAGE"
}
]
}
и соберите $newname в моем run.ps1
Push-OutputBinding -Name $OutputBlob -Value $Blob
Проблема заключается в том, что он хочет иметь массив Byte[], у которого нет свойств для его имени или около того.
Итак, конфигурация привязок просто принимает параметры, заданные вводом. Передача чего-либо другого, кроме массива Byte[], невозможна… Вот почему я всегда получаю
Executed 'Functions.CreateVaultEntry' (Failed, Id=775e61ce-b001-4278-a8d8-1c90ea63c062, Duration=91ms)
System.Private.CoreLib: Exception while executing function: Functions.CreateVaultEntry.
Microsoft.Azure.WebJobs.Host: No value for named parameter 'newfilename'.
Я просто хочу взять inputBlob
, изменить его имя и записать его как outputBlob
с другим именем.
Комментарии:
1. Не могли бы вы указать, где вы используете «newfilename»
2. Я пытался установить newname как var в коде моей функции, но, похоже, я не могу вычислить полное новое имя файла в своей функции. Я вообще пытался добавить временную метку к имени для целей архивирования.
Ответ №1:
Что такое newname
?
Когда ваша функция запускается и в триггере, к которому вы привязываетесь {name}
, тогда ваши другие привязки будут знать {name}
, но {newname}
не имеют смысла.
Возможно, вы хотите container-dest/{name}_output
Комментарии:
1. Я пытался установить newname как var в коде моей функции, но, похоже, я не могу вычислить полное новое имя файла в своей функции. Я вообще пытался добавить временную метку к имени для целей архивирования