Выходной путь BLOB-объекта "$ web / index.html" считается недопустимым для приложения функций - PullRequest
0 голосов
/ 12 апреля 2019

Хранилище BLOB-объектов Azure поддерживает функцию «статической сети» через принудительное имя контейнера «$ web».

При создании приложения функций, если вы хотите сохранить то, что ваша функция сгенерировала внутри документа BLOB-объекта,вам нужно указать путь, но путь с именем контейнера "$ web" считается недействительным.

Я использую среду выполнения функций Azure ~ 2, используя Javascript в качестве языка.

Файл function.json показан ниже.

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 0 5 * * *"
    },
    {
      "type": "blob",
      "name": "$return",
      "path": "$web/index.html",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}

Я ожидаю, что выходные данные сгенерируют и сохранят файл по пути BLOB-объекта $web/index.html, но я получаю следующую ошибку.

Validation failed for property 'BlobPath', value '$web/index.html'. The field BlobPath is invalid. 

1 Ответ

1 голос
/ 12 апреля 2019

Вместо использования стандартного канала вывода функций Azure я использовал SDK узла Azure .

Я обещал метод загрузки (который использует обратные вызовы в SDK V2).

function upload(svc, container, blob, content) {
    return new Promise((res, rej) => svc.createBlockBlobFromText(container, blob, content, (err, resp, _) => {
        if (err) {
            rej(err);
        }

        res(resp);
    }));
}

Затем я использовал его для загрузки сгенерированного файла.

const blobSvc = createBlobService();
await upload(blobSvc, process.env.OUTPUT_CONTAINER, process.env.OUTPUT_BLOB, render(readFileSync('D:/home/site/wwwroot/TimerTrigger1/template.html', 'utf-8'), { user, photos }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...