【问题标题】:AWS Update-GLUECrawler Powershell command loopingAWS Update-GLUECrawler Powershell 命令循环
【发布时间】:2019-02-24 14:29:42
【问题描述】:

我仍在学习 powershell 脚本和与 AWS 的集成。

脚本的预期结果是使用新数据存储(目标)更新 AWS Glue Crawler,其中包含任何尚未在 Crawler 中的 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 命令​​的文档未提供示例。

任何帮助都会很棒,谢谢。

【问题讨论】:

  • 您能否按照 Team Dev 的提示将函数名称从 Update-GlueCrawler($S3BucketSubdirectories) 更改为 Update-GlueCrawlerTargets($S3BucketSubdirectories)?

标签: amazon-web-services powershell aws-sdk aws-glue


【解决方案1】:

是不是因为你的函数名和你试图调用的 cmdlet 函数名一样?

是的 :-) ...终身开发团队

尝试代码看看它是如何循环的。

Function Get-F1 #This is your function
{
Write-Output "Function1"
Get-f1 #This calls your function and gets stuck in a loop. Rename your function
    }



Function Get-F2 #This will be the AWS function
{
Write-Output "Hello"
    }


Get-F1

【讨论】:

  • 我已经注意到这一点并重命名了函数,但同样的问题发生了。谢谢
  • 如果你在Powershell中运行下面的代码,它会卡在一个循环中 Function Get-F1 #This is your function { Write-Output "Function1" Get-f1 #This调用你的函数并卡住在一个循环中。重命名您的函数 } Function Get-F2 #这将是 AWS 函数 { Write-Output "Hello" } Get-F1
  • 在这里支持您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2021-12-05
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多