【发布时间】:2017-08-01 02:56:15
【问题描述】:
我有一个小函数,它接受一组美国电话区号,并返回一组与其所在州配对的区号。
区号到州的“主列表”是我函数中的一个长变量。我想把它放在一个 CSV 文件中。
我是使用 Azure Functions 的初学者,但即使文件位于根文件夹中,Get-Content .\filename.csv 也不起作用。
【问题讨论】:
标签: powershell azure azure-functions
我有一个小函数,它接受一组美国电话区号,并返回一组与其所在州配对的区号。
区号到州的“主列表”是我函数中的一个长变量。我想把它放在一个 CSV 文件中。
我是使用 Azure Functions 的初学者,但即使文件位于根文件夹中,Get-Content .\filename.csv 也不起作用。
【问题讨论】:
标签: powershell azure azure-functions
引用绝对路径从来都不是一个好主意,因为事情可能会发生变化。要使用始终将您指向正确路径的变量,您可以使用:
$EXECUTION_CONTEXT_FUNCTIONDIRECTORY 将返回运行 Azure Functions 的当前文件夹。
在您手头的问题中使用它:
Get-Content -Path "$EXECUTION_CONTEXT_FUNCTIONDIRECTORY\filename.csv"
【讨论】:
Azure Function 目录的路径是
D:\home\site\wwwroot\<YourFunctionName>
要加载 CSV 文件,请在 PowerShell 脚本中使用以下内容,
Get-Content D:\home\site\wwwroot\<YourFunctionName>\filename.csv
这是加载区域代码到状态映射文件的示例输出,
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 控制台来浏览 Function App 的目录结构。我有时会使用 Kudu 控制台在 Azure Functions 运行时之外测试 run.ps1 脚本。
要使用 Kudu 控制台,请执行以下步骤:
二。自带模块 - 您还可以加载自己的自定义模块并在 run.ps1 脚本中使用它们。有关如何实现此目的的详细信息,请提供here。
【讨论】:
我在应用服务控制台中运行了这个搜索:
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 环境变量作为资源文件的基本路径。
【讨论】: