Java中如何获取AWS Glue客户端?Lambda调用Glue Job实操
嘿,刚好能帮你解决这个问题!你创建DynamoDB客户端的思路完全可以套用到Glue上,我给你整理一下具体的写法:
Java Lambda中创建AWS Glue客户端的等效实现
和你用AmazonDynamoDBClientBuilder创建DynamoDB客户端的方式一致,Glue也有对应的构建器类AWSGlueClientBuilder,下面是两种常用的实例化方式:
1. 指定区域创建客户端(和你的DynamoDB写法完全对应)
直接指定目标区域,和你现有代码风格统一:
import com.amazonaws.services.glue.AWSGlue; import com.amazonaws.services.glue.AWSGlueClientBuilder; import com.amazonaws.services.glue.model.StartJobRunRequest; import com.amazonaws.services.glue.model.StartJobRunResult; // 实例化Glue客户端 AWSGlue glue = AWSGlueClientBuilder.standard() .withRegion("us-east-1") // 替换成你的Glue Job所在区域 .build(); // 补全你的Job调用逻辑 StartJobRunRequest jobRunRequest = new StartJobRunRequest(); jobRunRequest.setJobName("TestJob"); StartJobRunResult jobRunResult = glue.startJobRun(jobRunRequest); // 可以获取运行ID做后续追踪 String jobRunId = jobRunResult.getJobRunId();
2. 使用默认区域(Lambda环境推荐)
如果你的Lambda函数运行区域和Glue Job区域一致,且已经配置了正确的IAM角色权限,可以省略区域配置,客户端会自动读取Lambda环境中的区域变量:
AWSGlue glue = AWSGlueClientBuilder.defaultClient();
小提醒
- 一定要确保Lambda的IAM角色拥有
glue:StartJobRun权限,不然会触发权限拒绝的错误 - 从你的代码片段来看,你用的是AWS SDK for Java v1,上面的写法完全适配;如果是v2版本的话,写法会变成
GlueClient.builder().region(Region.US_EAST_1).build(),不过你当前场景用v1的写法就够了
内容的提问来源于stack exchange,提问作者Dev Utkarsh
相关产品推荐
相关产品推荐

