1

スタック名がある場合、AWS Java SDKを使用してスタックが存在するかどうかを確認する最も良い方法は何ですか?AWS Java SDKを使用してクラウドフォーメーションスタックが存在するかどうかを確認する最良の方法は?

私はに基づいて、以下のコードを試してみた

からhttps://github.com/aws/aws-sdk-java/blob/master/src/samples/AwsCloudFormation/CloudFormationSample.java

DescribeStacksRequest wait = new DescribeStacksRequest(); 
    wait.setStackName(stackName);   
    List<Stack> stacks = awsCFTClient.describeStacks(wait).getStacks(); 
    if (stacks.isEmpty()) { 
     logger.log("NO_SUCH_STACK"); 
     return true; 
    } 

しかし、私は取得しています:

AmazonServiceException:com.amazonaws.services.cloudformation.model.AmazonCloudFormationException: "idを持つスタックをstackName "は存在しません。

ありがとうございます!

答えて

0

他の誰かが迅速かつ汚いソリューションを探している場合は、この作品、

//returns true if stack exists 
public boolean stackExists(AmazonCloudFormation awsCFTClient, String stackName) throws Exception{ 
    DescribeStacksRequest describe = new DescribeStacksRequest(); 
    describe.setStackName(stackName); 
    //If stack does not exist we will get an exception with describe stack 
    try { 
     awsCFTClient.describeStacks(describe).getStacks(); 
    } catch (Exception e) { 
     logger.log("Error Message: " + e.getMessage()); 
     if (e.getMessage().matches("(.*)" + stackName + "(.*)does not exist(.*)")) { 
      return false; 
     } else { 
      throw e; 
     } 
    } 
    return true; 
} 

これを行うためのより良い方法があれば、私に知らせてください。

関連する問題