我正在尝试使用 AWS Glue 运行 ETL 作业,将数据从 Redshift 获取到 S3。
当我运行爬网程序时,它成功连接到 Redshift 并获取架构信息。相关日志在日志组 aws-glue/crawlers 下创建。
当我运行 ETL 作业时,它应该在日志组 aws-glue/jobs/output 和 aws-glue/jobs/error 下创建一个日志流,但它无法创建此类日志流,最终作业也无法创建失败了。
(我正在使用 AWS 托管的 AWSGlueServiceRole 策略进行 Glue 服务)
由于它不产生任何日志,因此很难确定 ETL 作业失败的原因。如果您能帮我解决这个问题,我将不胜感激。
大多数时候,这与您的 AWS 服务没有正确的权限有关(是的,即使只是写入日志!)。
向 Glue 角色添加类似的内容可能会达到目的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
}
]
}
我将通过以下说明确保您的端点和 VPC 设置正确:
http://docs.aws.amazon.com/glue/latest/dg/setup-vpc-for-glue-access.html
我正确设置了入站规则,但没有设置出站规则,这就是我认为的问题所在。