Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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
PowerShell-如何将自定义模块打包到AWS Lamdba的zip包中_Powershell_Aws Lambda - Fatal编程技术网

PowerShell-如何将自定义模块打包到AWS Lamdba的zip包中

PowerShell-如何将自定义模块打包到AWS Lamdba的zip包中,powershell,aws-lambda,Powershell,Aws Lambda,我正在尝试将一个脚本打包为Lambda函数。该脚本从同一文件夹中的其他ps1文件加载一些函数。当前使用“.”来包括。 当我尝试使用New awspowerShelllambdackage-ProjectDirectory projectName-OutputPackage projectName.zip来打包脚本文件时,它总是失败,错误如下 Line | 253 | throw $msg | ~~~~~~~~~~ | Er

我正在尝试将一个脚本打包为Lambda函数。该脚本从同一文件夹中的其他ps1文件加载一些函数。当前使用“.”来包括。 当我尝试使用
New awspowerShelllambdackage-ProjectDirectory projectName-OutputPackage projectName.zip来打包脚本文件时,它总是失败,错误如下

Line |
 253 |              throw $msg
     |              ~~~~~~~~~~
     | Error publishing PowerShell Lambda Function: -1 CALLSTACK: Command                        Arguments                                                                                                   Location -------
     | ---------                                                                                                   -------- _packageProject
     | {OutputPackage=C:\Users\tom\projectName\projectname.zip, BuildDirectory=projectName} _DeploymentFunctions.ps1: line 251 New-AWSPowerShellLambdaPackage {ProjectDirectory=projectName,
     | OutputPackage=projectName.zip}                                                       New-AWSPowerShellLambdaPackage.ps1: line 182 <ScriptBlock>                  {}
     | <No file>
行|
253 |扔$msg
|              ~~~~~~~~~~
|发布PowerShell Lambda函数时出错:-1调用堆栈:命令参数位置-------
|------------------------包装工程
|{OutputPackage=C:\Users\tom\projectName\projectName.zip,BuildDirectory=projectName}\u DeploymentFunctions.ps1:第251行新的AWSPowerShelllambdackage{ProjectDirectory=projectName,
|OutputPackage=projectName.zip}New-awspowershelllambdackage.ps1:第182行{}
| 
这是因为我使用“.”来获取其他ps1文件的源文件吗?我应该把它们转换成模块吗? 任何人都可以为此提供任何文档?
我似乎找不到任何详细说明如何打包PowerShell lambda的好来源。我能找到的所有示例都是针对单个ps1文件的

您需要有一个适当的
.csproj
文件才能使用
-ProjectDirectory
开关

我通常使用以下程序:

  • 使用带有
    -StagingDirectory
    开关的
    新AWSPowerShellLambdaPackage
    生成项目结构:

    新建AWSPowerShellLambdaPackage-StagingDirectory项目名称-ScriptPath。\projectName.ps1-OutputPackage项目名称.zip
    
  • 修改
    projectName.csproj
    以包含其他文件。以下示例将
    additionalScript.ps1
    SQL
    文件夹中的所有文件添加到包中:

    
    保存最新
    保存最新
    保存最新
    保存最新
    
  • 使用带有
    -ProjectDirectory
    开关的
    新建AWSPowerShellLambdPackage
    来构建包:
    New AWSPowerShellLambdaPackage-ProjectName-ProjectName-OutputPackage ProjectName.zip