задайте имя большого двоичного объекта для функции Azure с помощью powershell

#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 в коде моей функции, но, похоже, я не могу вычислить полное новое имя файла в своей функции. Я вообще пытался добавить временную метку к имени для целей архивирования