gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:26:48 25 4
gpt4 key购买 nike

我正在尝试将我拥有的脚本打包为 Lambda 函数。该脚本从同一文件夹中的一些其他 ps1 文件加载一些函数。目前使用“.”包括。当我尝试使用 New-AWSPowerShellLambdaPackage -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>

这是因为我用了“.”吗?获取其他 ps1 文件的来源?我应该将它们转换成模块吗?任何人都可以为此建议任何文档吗?我似乎找不到任何详细说明如何打包 PowerShell lambda 的好资源。我能找到的所有示例都是针对单个 ps1 文件的。

最佳答案

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

我通常使用以下过程:

  1. 使用 New-AWSPowerShellLambdaPackage-StagingDirectory 开关生成项目结构:

    New-AWSPowerShellLambdaPackage -StagingDirectory projectName -ScriptPath .\projectName.ps1 -OutputPackage projectName.zip
  2. 修改 projectName.csproj 以包含其他文件。以下示例将 additionalScript.ps1SQL 文件夹中的所有文件添加到包中:

    <ItemGroup>
    <Content Include="projectName.ps1">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="additionalScript.ps1">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="./SQL/**">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="./Modules/**">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    </ItemGroup>
  3. 使用 New-AWSPowerShellLambdaPackage-ProjectDirectory 开关来构建包:
    New-AWSPowerShellLambdaPackage -ProjectName projectName -OutputPackage projectName.zip

关于PowerShell - 如何将自定义模块打包到 AWS Lambda 的 zip 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61932451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com