Boto3中针对EF的自定义等待条件

问题描述

boto3为某些服务(例如EC2,S3等)提供默认的服务员。默认情况下,并非所有服务都提供此服务。现在,我来创建一个EFS卷并将生命周期策略添加到文件系统中。 EFS创建需要一些时间,并且生命周期策略未处于必需的efs状态。即创建了efs。

如何等待在Python boto3代码中创建EFS,以便可以添加策略?

解决方法

看起来不存在服务生,但您可以像这样创建自己的客户服务生:

import boto3
from botocore.waiter import WaiterModel
from botocore.waiter import create_waiter_with_client

client = boto3.client('efs')
waiter_name = "LifeCycleCompleted"
waiter_config = {
    "version": 2,"waiters": {
        "LifeCycleCompleted": {
            "operation": "DescribeLifecycleConfiguration","delay": 60,# Number of seconds to delay
            "maxAttempts": 5,# Max attempts before failure
            "acceptors": [
                {
                    "matcher": "path","expected": lifecycle_policy,"argument": "length(LifecyclePolicies[]) > `0`","state": "success"
                }
            ]
        }
    }
}
waiter_model = WaiterModel(waiter_config)
efs_lifecycle_waiter = create_waiter_with_client(waiter_name,waiter_model,client)

efs_lifecycle_waiter.wait(FileSystemId='MyFileSystemId')

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...