Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Terraform with Azure-功能应用程序在Azure门户中有效,但不适用于Terraform代码_Node.js_Terraform_Terraform Provider Azure_Azure Function App - Fatal编程技术网

Node.js Terraform with Azure-功能应用程序在Azure门户中有效,但不适用于Terraform代码

Node.js Terraform with Azure-功能应用程序在Azure门户中有效,但不适用于Terraform代码,node.js,terraform,terraform-provider-azure,azure-function-app,Node.js,Terraform,Terraform Provider Azure,Azure Function App,我正在使用Terraform和Azure创建一个函数应用程序来演示一个webapp(带有nodejs的Pi计算器) 在Azure门户中创建功能应用程序时,它可以正常工作;使用如下设置 之后,我在portal->Webhook+API中添加了一个带有“developmentenvironment”的新函数。而且它有效 但当我用Terraform创建它时,它不起作用。我正在使用以下代码: main.tf version = "=1.34.0" } resource "azurerm_r

我正在使用Terraform和Azure创建一个函数应用程序来演示一个webapp(带有nodejs的Pi计算器)

在Azure门户中创建功能应用程序时,它可以正常工作;使用如下设置

之后,我在portal->Webhook+API中添加了一个带有“developmentenvironment”的新函数。而且它有效

但当我用Terraform创建它时,它不起作用。我正在使用以下代码:

main.tf

    version = "=1.34.0"
}

resource "azurerm_resource_group" "rg" {
    name     = "rg"
    location = "westeurope"
}

# Create a storage resource
resource "azurerm_storage_account" "picalcstorage" {
  name                     = "picalcstorage"
  resource_group_name      = "${azurerm_resource_group.rg.name}"
  location                 = "${azurerm_resource_group.rg.location}"
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

# Choose a plan
resource "azurerm_app_service_plan" "picalcplan" {
  name                = "picalcplan"
  location            = "${azurerm_resource_group.rg.location}"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  kind                = "FunctionApp"

  sku {
    tier = "Dynamic"
    size = "Y1"
  }
}

resource "azurerm_storage_container" "storagecontainer" {
  name                  = "storagecontainer"
  resource_group_name   = "${azurerm_resource_group.rg.name}"
  storage_account_name  = "${azurerm_storage_account.picalcstorage.name}"
  container_access_type = "private"
}


resource "azurerm_function_app" "picalcfunction" {
  name                      = "picalcfunction"
  location                  = "${azurerm_resource_group.rg.location}"
  resource_group_name       = "${azurerm_resource_group.rg.name}"
  app_service_plan_id       = "${azurerm_app_service_plan.picalcplan.id}"
  storage_connection_string = "${azurerm_storage_account.picalcstorage.primary_connection_string}"


  app_settings = {
    FUNCTIONS_WORKER_RUNTIME = "node" 
  }
}

index.js

// node.js application to calculate pi as a Azure Function App
// P.Burghouwt HHS 2019
// <URL>?n=<number of decimals>  (default=20 if no n specified)
// returns pi and the calculation time as json data
// calculation derived from https://github.com/MikeMcl/decimal.js/issues/9 (Bailey-Borwein-Plouffe)

const Decimal = require("decimal.js");
Decimal.config({precision: 10});
function pi(n) {    
    var p16 = new Decimal(1);
    var pi = new Decimal(0);
    var precision=n;
    Decimal.precision=precision;
    var one = new Decimal(1);
    var two = new Decimal(2);
    var four = new Decimal(4);
    var k8 = new Decimal(0);
    for (var k = new Decimal(0); k.lte(precision); k = k.plus(one)) {
      var f = four.div(k8.plus(1))
          .minus(two.div(k8.plus(4)))
          .minus(one.div(k8.plus(5)))
          .minus(one.div(k8.plus(6)));
      pi = pi.plus(p16.times(f));
      p16 = p16.div(16);
      k8 = k8.plus(8);
    }
    return pi;
}

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');
    if (req.query.n || (req.body && req.body.n)) { 
        var n=(req.query.n || req.body.n)
    }
    else {
        var n=20
    };
    var StartTime = new Date()
    var calculatePi = pi(n)
    var EndTime = new Date() - StartTime 
    context.res = {
             status: 200,   
             body: "{\"PI\":\n {\n  \"decimals\": " + (n) + ",\n  \"ms\": " + JSON.stringify(EndTime) + ",\n  \"value\": " + (calculatePi.toString()) + "\n }\n} "
    };
};

这是我收到的错误消息:

我尝试了多种方法来更改异步代码,但仍然不起作用


有人知道问题是什么,我怎么可能解决这个问题吗?非常感谢

尝试更改为
module.exports=async(上下文,请求){
没有
函数
。谢谢,我刚刚尝试过,现在我收到一个指向花括号的错误。您是否有一个正在尝试部署的函数应用程序,或者只是JS文件?我相信VS创建了您的host.json文件,该文件指定了您应该使用的函数版本,这可能是v1 VS v2情况下的问题。
{
  "name": "picalc",
  "version": "1.0.0",
  "description": "Pi Calculation for node.js",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Pieter Burghouwt",
  "license": "MIT",
  "dependencies": {
    "decimal.js": "^10.2.0"
  }
}