Базовым инструментам функций Azure не удается установить расширения, необходимые для привязок

Я пытаюсь запустить функцию Azure (JavaScript) локально, но не удается func start со следующей ошибкой.

AddConfig: Тип (ы) привязки "таблица" не зарегистрированы. Убедитесь, что тип указан правильно и расширение привязки установлено.

Обратите внимание, что я успешно установил предварительные условия, которые на момент написания статьи были .NET Core 2.1, Node.JS и пакет Core Tools.

Как видно из вышеприведенной ошибки, я добавил выходную привязку для таблицы в function.json для функции с именем AddConfig. Я добавил привязку согласно документации.

Кто-нибудь может посоветовать, чего мне здесь не хватает?

Вещи, которые я пробовал

Следуя документации

Я выполнил следующую команду в папке проекта согласно документации.

func extensions install

Это привело к следующему выводу -

Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for C:\super-secret-path\WitchHunt\AddConfig\extensions.csproj...
  Generating MSBuild file C:\super-secret-path\WitchHunt\AddConfig\obj\extensions.csproj.nuget.g.props.
  Generating MSBuild file C:\super-secret-path\WitchHunt\AddConfig\obj\extensions.csproj.nuget.g.targets.
  Restore completed in 314.99 ms for C:\super-secret-path\WitchHunt\AddConfig\extensions.csproj.
  extensions -> C:\super-secret-path\WitchHunt\AddConfig\bin\extensions.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:01.66

Команда также привела к extensions.csproj добавляется в проект со следующим содержанием -

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <WarningsAsErrors></WarningsAsErrors>
    <DefaultItemExcludes>**</DefaultItemExcludes>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
  </ItemGroup>
</Project>

Ориентация на необходимое расширение

Я попытался установить расширение вручную, используя следующую команду. Хотя это действие сработало и привело к добавлению ссылки на пакет в extensions.csproj, повторный запуск функции приводит к той же ошибке.

Установка расширений func - пакет Microsoft.Azure.WebJobs.Extensions.Storage - версия 3.0.3

Создание привязки на портале и копирование 'extensions.csproj'

Название говорит само за себя. Я создал приложение Function, добавил функцию, создал привязку, установил расширение, а затем скопировал / вставил extensions.csproj, но ошибка по-прежнему сохраняется.

мой function.jsonна тот случай, если кому-то интересно

httpTrigger а также http привязки - это те, которые были сгенерированы при создании функции, а table привязка была скопирована из документации (я затем изменил tableName а также connection свойства, но я не думаю, что это проблема).

{
    "disabled": false,
    "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        },
        {
            "tableName": "WitchHuntConfig",
            "connection": "AzureWebJobsStorage",
            "name": "tableBinding",
            "type": "table",
            "direction": "out"
        }
    ]
}

1 ответ

Решение

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 3.0.3 должен исправить, попробуйте удалить bin obj затем снова запустите эту команду.

func extensions install не бесполезен, дело в том, что тип привязки table отсутствует в BindingPackageMap, следовательно, расширение не установлено. Имейте открытую проблему, чтобы отследить.

Другие вопросы по тегам