我刚开始使用boto3并尝试获取描述实例调用的特定值.因此,例如,如果我想获得'Hypervisor'值或Ebs从输出中获得'DeleteOnTermintation'值.下面是我当前用于进行调用并通过字典输出进行迭代的当前代码.
import boto3
import pprint
from datetime import datetime
import json
client = boto3.client('ec2')
filters = [{
'Name': 'tag:Name',
'Values': ['*']
}]
class DatetimeEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.strftime('%Y-%m-%dT%H:%M:%SZ')
elif isinstance(obj, date):
return obj.strftime('%Y-%m-%d')
# Let the base class default method raise the TypeError
return json.JSONEncoder.default(self, obj)
output = json.dumps((client.describe_instances(Filters=filters)), cls=DatetimeEncoder)
pprint.pprint(output)
for v in output:
print v['Hypervisor']
Run Code Online (Sandbox Code Playgroud)
得到此错误:
TypeError:字符串索引必须是整数,而不是str
使用pprint查看输出中的所有可用值.
谢谢..
有没有办法消灭以前的'eb init'配置?先前的配置具有在早期AWS账户中不存在的资源.我正在使用新的AWS账户,并希望初始化现有的Beanstalk环境.
谢谢..
command-line-interface amazon-web-services amazon-elastic-beanstalk
我不是JSON专家,但是我能够操纵AWS Beanstalk VPC cloudformation模板从S3中提取.WAR文件并部署为新应用程序。与原始脚本(仅创建2个子网)相反,我还操纵了脚本为公共创建了2个附加子网,为私有创建了另外一个子网。以下代码段出现问题。我需要处理这样的EC2实例和ELB使用我在script.So创建的其他子网的价值子网我将需要添加PrivateSubnet和PrivateSubnet2。ELB值将相同。
"SampleEnvironment" : {
"Type" : "AWS::ElasticBeanstalk::Environment",
"Properties" : {
"ApplicationName" : { "Ref" : "SampleApplication" },
"EnvironmentName" : "Sandbox",
"Description" : "AWS Elastic Beanstalk Environment running Python Sample Application",
"SolutionStackName" : "64bit Amazon Linux 2014.02 running Tomcat 7 Java 7",
"OptionSettings" : [
{"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "SSHSourceRestriction", "Value" : { "Fn::Join" : [ "", ["tcp,22,22,", { "Ref" : "BastionSecurityGroup" }]]}},
{"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "SecurityGroups", …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation amazon-elastic-beanstalk