AWS Update-GLUECrawler Цикл команд Powershell - PullRequest
0 голосов
/ 20 сентября 2018

Я все еще нахожусь в процессе изучения сценариев PowerShell и интеграции с AWS.

Предполагаемый результат сценария - обновить AWS Glue Crawler новыми хранилищами данных (целями) с любым каталогом S3 Bucket.путь, которого еще нет в сканере.Причина в том, что мне нужны отдельные таблицы в AWS Athena.В настоящее время поведение по умолчанию - создание секционированной таблицы, если схемы совпадают.У меня есть несколько каталогов в корзине S3, и все файлы имеют одинаковую схему.Таким образом, я понимаю, что я должен определить каждый путь в Crawler, чтобы они были отдельными таблицами в Афине.

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.Скрипт зависает и в конечном итоге отображает эту ошибку:

enter image description here

Я посмотрел онлайн и не могу найти ответ.Кроме того, документация для этой команды AWS не содержит примеров.

Любая помощь будет отличной, спасибо.

1 Ответ

0 голосов
/ 21 сентября 2018

Это потому, что имя вашей функции совпадает с именем функции командлета, которое вы пытаетесь вызвать?

Да :-) ... Team dev for life

Попробуйте код дляПосмотрите, как это зацикливается.

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
...