我仍在学习Powershell脚本以及与AWS的集成。
该脚本的预期结果是使用新的数据存储库(目标)来更新AWS Glue爬网程序,并使用该数据存储库(目标)中尚未包含在爬网程序中的任何S3存储桶目录路径。原因是我需要在AWS Athena中使用单独的表。当前的默认行为是,如果架构相同,它将创建一个分区表。我在S3存储桶中有多个目录,所有文件都具有相同的架构。因此,我的理解是,必须在Crawler中定义每个路径,以使其成为Athena中的单独表格。
function Update-GlueCrawler($S3BucketSubdirectories)
{
$Targets = New-Object Amazon.Glue.Model.CrawlerTargets
foreach ($i in $S3BucketSubdirectories){
$Targets.S3Targets.Add(@{"Path" = "s3://" + $S3BucketName +"/" + $i +""}) | Out-Null
}
Try
{
Update-GLUECrawler -Name $GlueCrawlerName -Target $Targets
return $true
}
Catch [System.InvalidOperationException]
{
return $false
}
}
我遇到的这个问题是,当按下Update-GLUECrawler命令时。脚本挂起并最终显示此错误:
我在网上看过,似乎找不到答案。另外,此AWS命令的文档没有提供示例。
任何帮助都会很棒,谢谢。
答案 0 :(得分:0)
是因为您的函数名称与您要调用的cmdlet函数名称相同吗?
是的:-) ...终身开发团队
尝试代码以查看其循环方式。
name.subname.subsubname