2016-03-23 18 views
1

Bazı şirket içi AWS komut dosyaları için bazı sahte testler oluşturmaya çalışıyorum. Boto3 kaynağını oluşturduktan ve varolan bir yığını doğrulamaya çalışırken, python komut dosyasını çalıştırdığımda aşağıdaki hatayı alıyorum:Hata ile ne yapmalı? "İstenen işlem doğrulanamadı. Lütfen daha fazla ayrıntı için aşağıdaki Boto istisnalarını inceleyin."

"İstenen işlem doğrulanamadı. Lütfen daha fazla ayrıntı için aşağıdaki Boto istisnalarını inceleyin."

Bu istisna dışında harika olurdu .... hata komutları gibi "Boto istisnaları" yoktur, sadece komut istemi. Ne anlama geliyor? İşte

bazı örnek kod şudur:

def function(): 
    resource = boto3.resource('cloudformation') 
    verify_stack(resource, 'MockStack') 

def verify_stack(session, stackName): 
     try: 
      stack = session.meta.client.describe_stacks(StackName=stack_name) 

     except: 
      return {} 

     else: 
      return stack 

Sadece başvuru için, yığın "MockStack" yok, ben bundan emin olmak için test ediyorum. Bir kısmı, aldığım hatanın, yığının var olmadığını, doğru olduğunu söylemesini söylüyor. Sorun bu olabilir mi?

cevap

0

Sorunumun çözümünü bulundu. Bir try/except ifadesinde verify_stack işlevini sarmalayarak yakaladığım bir ClientError oldu. İşte doğru kod:

try: 
    session = boto3.Session() 
    resource = session.resource('cloudformation') 

    sqs_template = { 
     "AWSTemplateFormatVersion": "2010-09-09", 
     "Resources": { 
      "QueueGroup": { 

      "Type": "AWS::SQS::Queue", 
      "Properties": { 
       "QueueName": "my-queue", 
       "VisibilityTimeout": 60, 
      } 
      }, 
     }, 
    } 

    sqs_template_json = json.dumps(sqs_template) 

    resource.create_stack(
     StackName="mock_stack", 
     TemplateBody=sqs_template_json, 
    ) 

    response = resource.verify_stack(resource, 'mock_stack') 

    print response 

except ClientError as error: 
    print error.message 
İlgili konular