如何在CloudFormation模板中获取Glue开发端点URL?

时间:2019-05-24 18:35:54

标签: amazon-web-services amazon-cloudformation aws-glue

我正在尝试编写一个创建以下内容的CloudFormation模板:

  • 胶水开发端点(类型AWS::Glue::DevEndpoint);和
  • 将Zeppelin笔记本连接到创建的端点的EC2实例。

第二个资源需要端点URL。 AWS::Glue::DevEndpoint在输出中提供端点 name ,但不清楚如何获取URL。

到目前为止,我发现的唯一解决方案是引入aws glue get-dev-endpoint命令并在实例初始化过程的某个时刻解析其输出。

1 个答案:

答案 0 :(得分:0)

截至2019年5月,Cloudformation不支持从AWS::Glue::DevEndpoint资源中检索公共地址。

如您在问题中建议的那样,您可以从CF中获取dev端点名称,并将其传递给EC2实例的用户数据中的AWS CLI命令,这可能是检索该名称的最佳方法。

我认为,如果在运行命令之前确保使用latest version of the AWS CLI,则可以解决通过胶水CLI获得的model error。该错误使它听起来像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
               ...