Как использовать. NET Core 3.x с Azure Функция App Powershell Runtime? - PullRequest
0 голосов
/ 28 апреля 2020

Я создал новое приложение-функцию, используя указанный ниже ресурс в своем шаблоне:

    {
      "apiVersion": "2015-08-01",
      "type": "Microsoft.Web/sites",
      "name": "[parameters('caAppName')]",
      "location": "[parameters('location')]",
      "kind": "functionapp",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
      ],
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]",
        "siteConfig": {
          "appSettings": [
            {
              "name": "AzureWebJobsStorage",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            },
            {
              "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            },
            {
              "name": "WEBSITE_CONTENTSHARE",
              "value": "[toLower(parameters('caAppName'))]"
            },
            {
              "name": "FUNCTIONS_EXTENSION_VERSION",
              "value": "~3"
            },
            {
              "name": "WEBSITE_NODE_DEFAULT_VERSION",
              "value": "~10"
            },
            {
              "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
              "value": "[reference(resourceId('microsoft.insights/components/', variables('applicationInsightsName')), '2015-05-01').InstrumentationKey]"
            },
            {
              "name": "FUNCTIONS_WORKER_RUNTIME",
              "value": "powershell"
            },
          ]
        }
      }

Я запускаю приведенный ниже код в приложении-функции на портале Write-Host "$([System.Security.Cryptography.X509Certificates.X509Certificate2].Assembly.Location)"

Я получаю D: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App \ 2.2.8 \ System.Security.Cryptography.X509Certificates.dll

Но если я использую консоль приложения Function:

D:\Program Files\dotnet\shared\Microsoft.NETCore.App> ls
2.2.8
2.2.8.installed
3.0.3
3.0.3.installed
3.1.3
3.1.3.installed

Итак, 3.1.3 присутствует, но функция с ним не выполняется.

Я заметил это только потому, что пытался использовать System.Security.Cryptography.PbeParameters, а тип отсутствует (вместе с некоторыми другие материалы AsymmetricAlgorithm)

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 28 апреля 2020

. NET Версия ядра определяется рабочим Azure PowerShell, который зависит от PowerShell SDK. PowerShell 6 является единственной версией, доступной в настоящее время в Azure функциях, и зависит от. NET Core 2.x, поэтому ваша функция PowerShell выполняется в этом контексте. Чтобы использовать. NET Core 3.x, у вас есть следующие опции:

  • рекомендуется: ждать поддержки PowerShell 7 в Azure Функции (ожидается, что будет развернут в течение следующих 2-4 недель);
  • создает отдельный исполняемый файл из вашей функции PowerShell.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...