2016-04-20 7 views
0

Ich versuche, alle Stapel zu löschen, die diese Umgebungen (Instanzen) beendet wurden. Beim Übergeben des stack_name an den delete_stack wird ein Fehler ausgegeben. Ich habe versucht, die Sonderzeichen (wie "") zum Wert von Stack_Name hinzuzufügen, aber es gab kein Glück. Kann mir bitte jemand helfen, das Problem zu beheben? Danke im Voraus!Ein Sonderzeichen an einen Wert in Python anhängen

#!/usr/bin/env python 

import boto 
import boto.ec2 
import boto.cloudformation 
import re 
from datetime import datetime, timedelta 

utclast = datetime.utcnow() - timedelta(2) 

conn = boto.cloudformation.connect_to_region('us-west-1',aws_access_key_id = '<access_key>',aws_secret_access_key = '<secret_key>') 
conn_ec2 = boto.ec2.connect_to_region('us-west-1',aws_access_key_id = '<access_key>',aws_secret_access_key = '<secret_key>') 

stacks = conn.list_stacks() 
for stackSumm in stacks: 
    pattern = re.compile("Testupload-env([a-zA-Z0-9]+)") 
    match = pattern.match(stackSumm.stack_name) 
    if stackSumm.stack_status in "CREATE_COMPLETE" and match and stackSumm.stack_name in match.string: 
     m = re.split(r'Testupload-', stackSumm.stack_name) 
     instance = conn_ec2.get_all_instances(filters={"tag:Name": m[1]}) 
     if not instance: 

      try: 
        print "Trying to delete stack: %s" % stackSumm.stack_name 
        conn.delete_stack(stackSumm.stack_name) 

      except boto.exception.BotoServerError, e: 
        print e.error_message 

Fehler:

File "delete_stack.py", line 7, in <module> 
    conn.delete_stack(Testupload-envmeraleb8b01739116b0f36d17a2b5445b949f592bb625-6293) 
NameError: name 'Testupload' is not defined 
+1

Die Ausnahme, die Sie anzeigen, stammt nicht aus dem Code, den Sie angezeigt haben, sondern irgendwo, wo Sie 'conn.delete_stack' mit einem Argument ohne Anführungszeichen aufrufen. – Blckknght

+0

poste den Code, der den Fehler auslöst. – dbliss

+0

was ist in deinem 'stackSumm'? – haifzhan

Antwort

0

Keiner von euch geschrieben Code den Fehler generiert, aber die Nameerror sagt, dass Sie keinen gültigen Stapelname

delete_stack(stack_name_or_id) Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully.

Parameters: stack_name_or_id (string) – The name or the unique identifier associated with the stack.

Der Name/id vorsah sollte eine Zeichenkette sein, muss eine Zeichenkette in Python in Anführungszeichen oder Anführungszeichen stehen

stack_name = "Testupload-envmeraleb8b01739116b0f36d17a2b5445b949f592bb625-6293" 
conn.delete_stack(stack_name) 
+0

Dies ist eine vorzeitige Antwort. Lass ihn den eigentlichen Code posten, der den Fehler ausgelöst hat. – dbliss

+0

@dbliss Sie können den Fehler OP angezeigt sehen. Bedeutet es dir nichts? – haifzhan

Verwandte Themen