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

Ern*_*kov 6 amazon-web-services aws-cloudformation aws-glue

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

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

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

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

JD *_*D D 1

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

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

我认为,如果您在运行该命令之前确保使用的是最新版本的 AWS CLI,model error则您使用胶水 CLI 遇到的问题可能会得到解决。此错误听起来像是 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
               ...

Run Code Online (Sandbox Code Playgroud)