■aws * waitサブコマンドについて調べてみる。
イベントが完了されるまで待機する。
試行回数が一定回数を超えたら、リターンコード255を返してタイムアウトする。
$ awk '/wait/{print NF | "sort -uV"}' aws-allsubcmd.txt
3
$ awk '/wait/{print $2}' aws-allsubcmd.txt | wc -l
40
■リターンコードは以下から。
$ awk '/^[0-9]*$/' return/code | grep -v "^\$"
0
1
2
130
252
253
254
255
■検索するときは以下のように。
$ cat return/code | lsec -sep "^[0-9]*$" aws
コード
意味
参考 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-usage-returncodes.html
$ cat return/code | lsec -sep "^[0-9]*$" ^1[^0-9]
1
1 つ以上の Amazon S3 転送オペレーションが失敗しました。S3 コマンドに制限されます。
$ cat return/code | lsec -sep "^[0-9]*$" ^2[^0-9]
2
このリターンコードの意味は、コマンドによって異なります。
■waitサブコマンドを受け付けるコマンドの一覧
$ awk '/wait/{print $2}' aws-allsubcmd.txt | column
acm docdb elastictranscoder lambda rekognition
acm-pca dynamodb elb machinelearning route53
appstream ec2 elbv2 medialive s3api
cloudformation ecr emr neptune sagemaker
cloudfront ecs glacier opsworks schemas
cloudwatch eks iam opsworks-cm ses
deploy elasticache iotsitewise rds signer
dms elasticbeanstalk kinesis redshift ssm
■「--generate-cli-skeleton」を受け付けなかった一覧でもある。
AWS CLIコマンドのすべてのパラメータファイルを「--generate-cli-skeleton 」で生成してみる。
https://labunix.hateblo.jp/entry/20210207/1612701943
$ diff all-jsonlist_{to,success}.txt | \
awk -F'<' '/</{gsub(" ","_",$2);print substr($2,2)".json",substr($2,2)".json"}' | \
awk '{gsub("_"," ",$1); \
print "echo -n \042# "substr($1,1,length($1)-5)" ### \042;awk \047BEGIN{a=0}{if(/[A-Za-z0-9]/){if(a==0){print $1;a=1}}}\047 "$2}' | \
sh | nl | grep wait | nl
1 3
2 5
3 26
4 44
5 47
6 55
7 105
8 115
9 117
10 121
11 128
12 132
13 137
14 142
15 144
16 146
17 148
18 151
19 153
20 171
21 188
22 204
23 219
24 237
25 248
26 269
27 280
28 295
29 300
30 302
31 321
32 324
33 327
34 334
35 339
36 352
37 361
38 373
39 376
40 382
■「aws ec2 wait」のサブコマンドはaws-allsubcmd.txtに出してないので、以下で取得する。
$ awk '/wait/{print "echo \042# "$0"\042;./aws-subcmd-list "$0}' subcmd/aws-allsubcmd.txt | sh > wait/wait-subcmd.txt
■クラスタサブコマンドの使い方。waitに渡せるのは3つ。
$ aws emr wait help | lsec E.*X.*A
EXAMPLES
The following command waits until a cluster with the cluster ID
j-3SD91U2E1L2QX is up and running:
aws emr wait cluster-running --cluster-id j-3SD91U2E1L2QX
WAIT()
$ cat wait/wait-subcmd.txt | lsec -sep "^#" emr
cluster-running
cluster-terminated
step-complete
■ec2 waitには32個渡せる。
$ cat wait/wait-subcmd.txt | lsec -sep "^#" ec2 | awk '{printf "%3d %s\n",(NR-1),$0}'
0
1 bundle-task-complete
2 conversion-task-cancelled
3 conversion-task-completed
4 conversion-task-deleted
5 customer-gateway-available
6 export-task-cancelled
7 export-task-completed
8 image-available
9 image-exists
10 instance-exists
11 instance-running
12 instance-status-ok
13 instance-stopped
14 instance-terminated
15 key-pair-exists
16 nat-gateway-available
17 network-interface-available
18 password-data-available
19 security-group-exists
20 snapshot-completed
21 spot-instance-request-fulfilled
22 subnet-available
23 system-status-ok
24 volume-available
25 volume-deleted
26 volume-in-use
27 vpc-available
28 vpc-exists
29 vpc-peering-connection-deleted
30 vpc-peering-connection-exists
31 vpn-connection-available
32 vpn-connection-deleted