aws cloudformation
「DELETE_IN_PROGRESS」や「ROLLBACK_IN_PROGRESS」などのテキスト形式でスタックステータスを返すコマンドを受け取りました。
aws cloudformation --region "$AWS_DEFAULT_REGION" describe-stacks --stack-name "$STACK_NAME" --query 'Stacks[*].StackStatus' --output text
プロセスが進行中の場合にのみスタック状態を返します。そうしないと、次のエラーが発生します。
An error occurred (ValidationError) when calling the DescribeStacks operation: Stack with id `foobar` does not exist
だから私の考えは、これらの例外のエラーメッセージを隠してテキスト出力を計算することでしたので、私は次のようにしました。
AWS_DEFAULT_REGION='us-east-1'
STACK_NAME='blog-review-ci'
until test "$(aws cloudformation --region "$AWS_DEFAULT_REGION" describe-stacks --stack-name "$STACK_NAME" --query 'Stacks[*].StackStatus' --output text 2>/dev/null)" = 'DELETE_IN_PROGRESS'; do
echo "DELETE_IN_PROGRESS for $STACK_NAME, wait...";
sleep 3s;
done
残念ながら、この問題は引き続き発生します。
DELETE_IN_PROGRESS for foobar, wait...
現在、DELETE_IN_PROGRESSが発生していないため、通過理由がわからないため、これは間違っています。
エラーが発生したときに出力がstderr / stdoutであることを確認するために、AWSコマンドに関する詳細情報を見つけようとしていますが、その情報を見つける方法がわかりません。
また| grep 'DELETE_IN_PROGRESS'コマンドを実行してみましたが、うまくいきませんでした。
until aws cloudformation --region "$AWS_DEFAULT_REGION" describe-stacks --stack-name "$STACK_NAME" --query 'Stacks[*].StackStatus' --output text | grep 'DELETE_IN_PROGRESS'; do
echo "DELETE_IN_PROGRESS for $STACK_NAME, wait...";
sleep 3s;
done
その結果は次のとおりです。
An error occurred (ValidationError) when calling the DescribeStacks operation: Stack with id blog-review-ci does not exist
DELETE_IN_PROGRESS for foobar, wait...
ベストアンサー1
until
きっと必要なところに使っていたようですwhile
。