Amazon web services AWS EFS-创建文件系统后创建装载目标的脚本
我正在编写一个脚本,该脚本将创建一个EFS文件系统,其名称来自输入。我正在使用适用于PHP版本3的AWS SDK 我能够使用createFileSystem命令创建文件系统。在创建装载目标之前,此新文件系统不可用。如果在createFileSystem命令之后运行CreateMountTarget命令,则会收到一个错误,即文件系统的生命周期状态未处于“可用”状态 我尝试使用createFileSystemAsync创建一个承诺,并对该承诺调用wait函数以强制脚本同步运行。但是,当文件系统仍处于“创建”生命周期状态时,该承诺始终得以实现Amazon web services AWS EFS-创建文件系统后创建装载目标的脚本,amazon-web-services,aws-sdk,amazon-efs,aws-php-sdk,Amazon Web Services,Aws Sdk,Amazon Efs,Aws Php Sdk,我正在编写一个脚本,该脚本将创建一个EFS文件系统,其名称来自输入。我正在使用适用于PHP版本3的AWS SDK 我能够使用createFileSystem命令创建文件系统。在创建装载目标之前,此新文件系统不可用。如果在createFileSystem命令之后运行CreateMountTarget命令,则会收到一个错误,即文件系统的生命周期状态未处于“可用”状态 我尝试使用createFileSystemAsync创建一个承诺,并对该承诺调用wait函数以强制脚本同步运行。但是,当文件系统仍处于
有没有办法使用AWS SDK强制脚本等待文件系统处于可用状态?一种方法是使用API检查文件系统的状态。在响应中查看,如果可用,则触发CreateMountTargetAPI。在LifeCycleState可用之前,您可以在循环中持续检查DescribeFileSystems,延迟几秒钟。看起来您需要一个文件系统可用,但是。我想要一个。你需要等待一段时间才能有一个可用的生命周期 同时,你也可以用下面和下面的东西来写你自己的
用于并发发出HTTP请求。在这种情况下,这没有帮助,因为API调用的行为是在EFS中启动异步任务。谢谢。这是一个简单的解决方案。我使用了一个循环和php sleep函数来创建挂载目标。
{
"version":2,
"FileSystemAvailable": {
"delay": 15,
"operation": "DescribeFileSystems",
"maxAttempts": 40,
"acceptors": [
{
"expected": "available",
"matcher": "pathAll",
"state": "success",
"argument": "FileSystems[].LifeCycleState"
},
{
"expected": "deleted",
"matcher": "pathAny",
"state": "failure",
"argument": "FileSystems[].LifeCycleState"
},
{
"expected": "deleting",
"matcher": "pathAny",
"state": "failure",
"argument": "FileSystems[].LifeCycleState"
}
]
},
}