Node.js Terraform with Azure-功能应用程序在Azure门户中有效,但不适用于Terraform代码
我正在使用Terraform和Azure创建一个函数应用程序来演示一个webapp(带有nodejs的Pi计算器) 在Azure门户中创建功能应用程序时,它可以正常工作;使用如下设置 之后,我在portal->Webhook+API中添加了一个带有“developmentenvironment”的新函数。而且它有效 但当我用Terraform创建它时,它不起作用。我正在使用以下代码: main.tfNode.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
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"
}
}