【问题标题】:How to load a file in Azure Function using PowerShell如何使用 PowerShell 在 Azure Function 中加载文件
【发布时间】:2017-08-01 02:56:15
【问题描述】:

我有一个小函数,它接受一组美国电话区号,并返回一组与其所在州配对的区号。

区号到州的“主列表”是我函数中的一个长变量。我想把它放在一个 CSV 文件中。

我是使用 Azure Functions 的初学者,但即使文件位于根文件夹中,Get-Content .\filename.csv 也不起作用。

【问题讨论】:

    标签: powershell azure azure-functions


    【解决方案1】:

    引用绝对路径从来都不是一个好主意,因为事情可能会发生变化。要使用始终将您指向正确路径的变量,您可以使用:

    $EXECUTION_CONTEXT_FUNCTIONDIRECTORY 将返回运行 Azure Functions 的当前文件夹。

    在您手头的问题中使用它:

    Get-Content -Path "$EXECUTION_CONTEXT_FUNCTIONDIRECTORY\filename.csv"
    

    有关此的文档: https://github.com/Azure/azure-functions-host/wiki/Retrieving-information-about-the-currently-running-function#powershell-php-python-bash-batch-and-other-scripting-languages

    【讨论】:

    • 这就是我要找的东西,非常感谢。使用 powershell 在 azure 功能中为我工作
    【解决方案2】:

    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 控制台,请执行以下步骤:

    1. 访问 Azure Functions 门户以获取您的 Function App。
    2. 点击Function app settings -> Go to Kudu -> Debug Console -> PowerShell
    3. 导航到您的函数目录并运行您的脚本,如下面的快照所示。


    二。自带模块 - 您还可以加载自己的自定义模块并在 run.ps1 脚本中使用它们。有关如何实现此目的的详细信息,请提供here

    【讨论】:

    • 工作就像一个魅力。
    【解决方案3】:

    我在应用服务控制台中运行了这个搜索:

    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 环境变量作为资源文件的基本路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 2021-02-07
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多