【问题标题】:Append special character to a value in python将特殊字符附加到python中的值
【发布时间】:2016-08-13 16:44:52
【问题描述】:

我正在尝试删除那些环境(实例)已终止的所有堆栈。在将 stack_name 传递给 delete_stack 时,它会引发错误。我尝试将特殊字符(例如'')添加到 stack_name 的值中,但没有运气。有人可以帮我解决这个问题。提前致谢!

#!/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

错误:

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

【问题讨论】:

  • 您显示的异常并非来自您显示的任何代码,而是来自您使用缺少引号的参数调用conn.delete_stack 的地方。
  • 发布引发错误的代码。
  • 您的stackSumm 中有什么内容?

标签: python boto amazon-cloudformation


【解决方案1】:

你们发布的代码都没有产生错误,但是 NameError 说你没有提供有效的堆栈名称

delete_stack(stack_name_or_id) 删除指定的堆栈。一旦调用成功完成,堆栈删除就开始了。如果删除已成功完成,已删除的堆栈不会显示在 DescribeStacks API 中。

参数:stack_name_or_id (string) – 与堆栈关联的名称或唯一标识符。

name/id应该是字符串,python中的字符串必须加引号,单引号或者双引号都可以

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

【讨论】:

  • 这是一个不成熟的答案。让他发布引发错误的实际代码。
  • @dbliss 您可以看到发布的错误 OP。这对你来说没有任何意义吗?
猜你喜欢
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多