Как получить URL конечной точки разработки Glue в шаблоне CloudFormation? - PullRequest
6 голосов
/ 24 мая 2019

Я пытаюсь написать шаблон CloudFormation, который создает:

  • Конечная точка разработки клея (тип AWS::Glue::DevEndpoint); и
  • Экземпляр EC2 с ноутбуком Zeppelin, подключенным к созданной конечной точке.

Второй ресурс требует URL-адреса конечной точки. AWS::Glue::DevEndpoint предоставляет конечную точку имя в выводе, но не ясно, как получить URL.

Единственное решение, которое я нашел до сих пор, - это ввести команду aws glue get-dev-endpoint и проанализировать ее вывод в некоторой точке процесса инициализации экземпляра.

1 Ответ

1 голос
/ 28 мая 2019

По состоянию на май 2019 г. Cloudformation не поддерживает извлечение публичного адреса из ресурса AWS::Glue::DevEndpoint.

Как вы предложили в этом вопросе, вы можете получить имя конечной точки dev из CF и передать его команде CLI AWS в пользовательских данных экземпляра EC2, что, вероятно, является наилучшим способом получения этого.

Я думаю, что model error, который вы получаете с помощью клейкого интерфейса командной строки, может быть разрешен, если вы убедитесь, что используете последнюю версию интерфейса командной строки AWS перед выполнением команды. Эта ошибка звучит так, как будто есть какая-то проблема с конфигурацией службы склеивания в CLI.

Resources:
   MyDevEndpoint:
      Type: AWS::Glue::DevEndpoint
      Properties: 
         ...

   MyInstance:
      Type: AWS::EC2::Instance
      Properties:
         ...
         UserData:
            Fn::Base64: !Sub |
               aws --version
               yes | pip3 install awscli --upgrade --user
               aws --version
               ENDPOINT_NAME=${MyDevEndpoint}
               aws glue get-dev-endpoint --endpoint-name $ENDPOINT_NAME
               ...

...