Inf*_*ion 6 python amazon-web-services aws-glue
我正在尝试在 Python 脚本中启动 AWS Glue ETL 作业并检查其状态,直到作业完成。
最初我只是做了一个简单的 while 循环,等待 1 分钟并检查作业状态。一旦作业成功完成,就打破循环。在进一步研究这种方法时,我发现了一个叫做“服务员”的东西。
但问题是,尽管“get_waiter”方法可用于 Glue 客户端,但我确实看到了任何服务员。
所以当我运行这个...
s3 = boto3.client('s3')
glue = boto3.client('glue')
print('s3 waiters')
print(s3.waiter_names)
print('glue waiters')
print(glue.waiter_names)
Run Code Online (Sandbox Code Playgroud)
我明白了...
s3 waiters
[u'bucket_exists', u'bucket_not_exists', u'object_exists', u'object_not_exists']
glue waiters
[]
Run Code Online (Sandbox Code Playgroud)
所以我想知道 AWS Glue 是否真的有服务员。如果是这样,我能找到他们吗?
我找到的一些参考资料: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue.html#Glue.Client.get_waiter
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/clients.html#waiters
如果您想了解有关服务服务员的更多信息,可以通过三种主要方式了解更多详细信息:
编辑:对于那些需要定制服务员进行胶水工作的人
import boto3
from botocore.waiter import WaiterModel
from botocore.waiter import create_waiter_with_client
client = boto3.client('glue')
waiter_name = "JobRunCompleted"
waiter_config = {
"version": 2,
"waiters": {
"JobRunCompleted": {
"operation": "GetJobRun",
"delay": 60, # Number of seconds to delay
"maxAttempts": 30, # Max attempts before failure
"acceptors": [
{
"matcher": "path",
"expected": "SUCCEEDED",
"argument": "JobRun.JobRunState",
"state": "success"
},
{
"matcher": "path",
"expected": "FAILED",
"argument": "JobRun.JobRunState",
"state": "failure"
}
]
}
}
}
waiter_model = WaiterModel(waiter_config)
glue_job_run_waiter = create_waiter_with_client(waiter_name, waiter_model, client)
glue_job_run_waiter.wait(JobName='my_job_name', RunId='my_run_id')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |