我正在尝试编写一个创建以下内容的CloudFormation模板:
AWS::Glue::DevEndpoint
);和第二个资源需要端点URL。 AWS::Glue::DevEndpoint
在输出中提供端点 name ,但不清楚如何获取URL。
到目前为止,我发现的唯一解决方案是引入aws glue get-dev-endpoint
命令并在实例初始化过程的某个时刻解析其输出。
答案 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
...