Azure 自动化模块导入 - 如何调查未 exported/extracted 作为活动的模块成员?
Azure Automation Module Import - How to investigate module members not being exported/extracted as Activities?
我有一个带有一些嵌入式工作流和本机 ps1 cmdlet 的自定义模块。
当我导入此模块时,只有一部分 cmdlet 显示为模块下的提取活动。
模块正在成功完成导入,并显示为可用。
是否有任何地方可以查找特定的输出和任何可能的特定于成员的导入错误?
无法加载的 cmdlet 取决于作为程序集的一部分添加的一些新类型。 加载的 cmdlet 也取决于该程序集的类型。
更令人困惑的是,当我在 ISE 中本地导入此模块时,一切正常,所有 cmdlet 都是 available/executable。
进一步:我在本机 PowerShell cmdlet 中看到了这一点,但 它也似乎不支持 .ps1 中的(单个)PowerShell 工作流 activity。
此外,我在本地看到,根据是否使用 .psd1 或 .psm1 加载我的模块,我得到不同的行为和结果 WRT 依赖程序集加载。
特别是,在尝试解决本地不一致问题时,我遇到了一些 "can't find type" 或 "found more than one overload for ctor with 1 arg"(尽管所讨论的类型没有带 1 个参数的 ctor)错误通过 [OutputType([typename])]
等引用的类型,当发现确实依赖于同一程序集中的类型的其他 cmdlet 时很好..
[编辑]
我的测试 .psm1
的本地详细输出
VERBOSE: Importing function 'sync-test'.
VERBOSE: Importing command as workflow 'Sync-VsoGitRmRunbook'.
在 AA 中,sync-test(只是一个写入字符串输出的普通 runbook)显示正常,而 Sync-VsoGitRmRunbook 则没有。
如果我将同步测试转换为工作流,它也会停止导入,这让我相信导出捆绑为 .ps1 文件(而不是 C# 类 打包在模块中)
[编辑]
我创建了一个重现问题的模块。
https://github.com/JoeBrockhaus/AzureAutomationVsoGitSync
只能通过 PowerShell 模块将 PowerShell cmdlet/DSC 资源导入到 Azure 自动化中。如果您将 Workflow 活动转换为 cmdlet,导入应该会成功。
您可能希望这些 Workflow 活动无论如何都是 cmdlet,这样它们也可以在非 PowerShell Workflow runbook 中利用。
我有一个带有一些嵌入式工作流和本机 ps1 cmdlet 的自定义模块。
当我导入此模块时,只有一部分 cmdlet 显示为模块下的提取活动。
模块正在成功完成导入,并显示为可用。
是否有任何地方可以查找特定的输出和任何可能的特定于成员的导入错误?
无法加载的 cmdlet 取决于作为程序集的一部分添加的一些新类型。 加载的 cmdlet 也取决于该程序集的类型。
更令人困惑的是,当我在 ISE 中本地导入此模块时,一切正常,所有 cmdlet 都是 available/executable。
进一步:我在本机 PowerShell cmdlet 中看到了这一点,但 它也似乎不支持 .ps1 中的(单个)PowerShell 工作流 activity。
此外,我在本地看到,根据是否使用 .psd1 或 .psm1 加载我的模块,我得到不同的行为和结果 WRT 依赖程序集加载。
特别是,在尝试解决本地不一致问题时,我遇到了一些 "can't find type" 或 "found more than one overload for ctor with 1 arg"(尽管所讨论的类型没有带 1 个参数的 ctor)错误通过 [OutputType([typename])]
等引用的类型,当发现确实依赖于同一程序集中的类型的其他 cmdlet 时很好..
[编辑]
我的测试 .psm1
VERBOSE: Importing function 'sync-test'.
VERBOSE: Importing command as workflow 'Sync-VsoGitRmRunbook'.
在 AA 中,sync-test(只是一个写入字符串输出的普通 runbook)显示正常,而 Sync-VsoGitRmRunbook 则没有。
如果我将同步测试转换为工作流,它也会停止导入,这让我相信导出捆绑为 .ps1 文件(而不是 C# 类 打包在模块中)
[编辑]
我创建了一个重现问题的模块。
https://github.com/JoeBrockhaus/AzureAutomationVsoGitSync
只能通过 PowerShell 模块将 PowerShell cmdlet/DSC 资源导入到 Azure 自动化中。如果您将 Workflow 活动转换为 cmdlet,导入应该会成功。
您可能希望这些 Workflow 活动无论如何都是 cmdlet,这样它们也可以在非 PowerShell Workflow runbook 中利用。