我有一个小函数,它接受一系列美国电话区号并返回一组区域代码与它们所处的状态配对。
区域代码到状态的“主列表”是我函数中的一个长变量。我想把它放在CSV文件中。
我是使用Azure功能的初学者,但即使文件位于根文件夹中,Get-Content .\filename.csv
也不起作用。
答案 0 :(得分:1)
Azure功能目录的路径是
D:\home\site\wwwroot\<YourFunctionName>
要加载CSV文件,请在PowerShell脚本中使用以下内容
Get-Content D:\home\site\wwwroot\<YourFunctionName>\filename.csv
这是用于加载areacode-to-state映射文件的示例输出
2017-03-11T09:21:57.185 Function started (Id=9c93e8cf-4cf0-487e-b86e-02e57b41b8de)
2017-03-11T09:21:58.357 Area code,State,State code
2017-03-11T09:21:58.357 201,New Jersey,NJ
2017-03-11T09:21:58.357 202,"Washington,DC",DC
2017-03-11T09:21:58.357 203,Connecticut,CT
2017-03-11T09:21:58.357 205,Alabama,AL
....<more logging>....
其他工具和资源
的我。 Kudu控制台 - 您可以使用Kudu控制台浏览功能应用程序的目录结构。我有时使用Kudu控制台来测试Azure Functions运行时之外的run.ps1
脚本。
要使用Kudu控制台,请执行以下步骤:
的 II。带上您自己的模块 - 您也可以加载自己的自定义模块并在run.ps1
脚本中使用它们。有关如何实现此目的的详细信息,请提供here。
答案 1 :(得分:1)
引用绝对路径绝不是一个好主意,因为事情可能会发生变化。要使用始终将您指向正确路径的变量,可以使用:
$EXECUTION_CONTEXT_FUNCTIONDIRECTORY
,它将返回运行Azure Functions的当前文件夹。
要在手头的问题中使用它:
Get-Content -Path "$EXECUTION_CONTEXT_FUNCTIONDIRECTORY\filename.csv"
答案 2 :(得分:0)
我在应用服务控制台中运行了此搜索:
D:\home\site\wwwroot>set | findstr /c:wwwroot
AZURE_JETTY93_CMDLINE=-Djava.net.preferIPv4Stack=true -Djetty.port=%HTTP_PLATFORM_PORT% -Djetty.base="D:\Program Files (x86)\jetty-distribution-9.3.25.v20180904" -Djetty.webapps="d:\home\site\wwwroot\webapps" -jar "D:\Program Files (x86)\jetty-distribution-9.3.25.v20180904\start.jar" etc\jetty-logging.xml
AZURE_JETTY9_CMDLINE=-Djava.net.preferIPv4Stack=true -Djetty.port=%HTTP_PLATFORM_PORT% -Djetty.base="D:\Program Files (x86)\jetty-distribution-9.1.0.v20131115" -Djetty.webapps="d:\home\site\wwwroot\webapps" -jar "D:\Program Files (x86)\jetty-distribution-9.1.0.v20131115\start.jar" etc\jetty-logging.xml
DEPLOYMENT_TARGET=D:\home\site\wwwroot
WEBROOT_PATH=D:\home\site\wwwroot
似乎您也可以使用DEPLOYMENT_TARGET或WEBROOT_PATH环境变量作为资源文件的基本路径。