我对此method get_waiter(waiter_name)
感兴趣。服务员的例子在page。我到处寻找,但我找不到这个特定服务的完整服务员列表(对于Python和PHP也是如此)。
基本上,我想要发生的是获取应用程序或环境的状态,并在继续执行下一个任务之前验证它是否正常。
我目前的做法是使用while
循环和break
,如果AWS响应的状态与我期望的状态匹配。我认为这不是解决这个问题的最佳方法。如果我错了,请纠正我。
以下是我用Python编写的代码片段:
# Check the application status
while True:
try:
response = eb.describe_application_versions(
ApplicationName=app_name,
VersionLabels=[
new_app_version
]
)
status = 'PROCESSED'
app_status = response['ApplicationVersions'][0]['Status']
if status == app_status:
print('Application Status:\t', app_status)
break
except:
raise
# Deploy the app to Elastic Beanstalk
try:
response = eb.update_environment(
ApplicationName=app_name,
EnvironmentId=env_id,
VersionLabel=new_app_version
)
except:
raise
# Check environment health
while True:
try:
response = eb.describe_environment_health(
EnvironmentId=env_id,
AttributeNames=[
'Status'
]
)
status = 'Ready'
env_status = response['Status']
if status == env_status:
print('Environment Status:\t', env_status)
break
except:
raise
答案 0 :(得分:2)
该服务还没有服务员。如果有,你会在文档中看到它们。例如,将elasticbeanstalk boto3 docs与cloudfront docs进行比较。 Cloudfront文档有waiters section。