我正在尝试使用EC2实例在AWS中构建一个木偶管理基础架构(非企业).使用puppetlabs-aws模块我可以通过方便的方式创建机器.接下来是在每个节点上进行本地设置,最重要的是设置唯一的主机名.我怎样才能做到这一点?
我知道的一种方法是通过user_data参数提供脚本.这将是很好的,但为了可用,我需要能够参数化该脚本,以避免为每个代理重复一次脚本.
是否有意义?我真的很感激一种实现这一目标的便捷方式,因为我想以编程方式启动新实例.任何建议都将被考虑.
举一个我的问题的例子,考虑我的配置木偶清单的这个片段:
ec2_instance { 'backend':
ensure => present,
name => 'backend',
region => 'us-west-2',
image_id => 'ami-f0091d91',
instance_type => 't2.micro',
key_name => 'mykey',
security_groups => ['provision-sg'],
user_data => template('configure.erb'),
}
ec2_instance { 'webfront':
ensure => present,
name => 'webfront',
region => 'us-west-2',
image_id => 'ami-f0091d91',
instance_type => 't2.micro',
key_name => 'mykey',
security_groups => ['provision-sg'],
user_data => template('configure.erb'),
}
Run Code Online (Sandbox Code Playgroud)
这将确保两个实例启动并运行.请注意user_data => template('configure.erb')引用模板脚本,该脚本在创建后在实例上执行.如果我只知道决定依据的数据,我可以在这里设置主机名(或我想要的任何东西).我可以在实例描述中添加标签,但configure.erb据我所知,从脚本中无法读取.
无论如何,设置主机名只是我解决根本问题的想法.可能还有其他更方便的方法.我想要的只是让这两个实例代表木偶大师的不同节点类型的方法.
请参阅AWS Cloudfront文档,AWS API Gateway支持TLS v1.0,v1.1,v1.2.
但我想将加密协议限制为TLS v1.1和v1.2以用于我的Gateway API.我在哪里配置?我没有看到我的API的任何cloudfront分发.网关资源页面没有指定安全协议的选项.
我的API使用自定义域在过去2年中投入生产.知道如何仅在API网关中将API限制为TLS V1.1和V1.2协议?
我正在尝试在现有的类中测试方法。inputStreamThread在类的方法内调用Foo.crawler.crawlerapp.CrawlerApp该方法。addUrl
inputStreamThread从 stdin 读取然后调用addUrl
addUrl也在CrawlerApp班上
我希望能够assert_called_with在模拟上使用来addUrl检查是否inputStreamThread做了正确的事情并调用addUrl
问题是我无法获得正确的语法来模拟addUrl内部CrawlerApp
我直接使用了模拟文档中的示例,但出现了如下所示的错误
正如你所看到的,我还模拟标准输入,以便能够在其上呈现测试数据
我的问题是,我应该使用什么代码来执行此类测试而不显示错误?
import Foo.crawler.crawlerapp
from unittest import TestCase
from mock import patch, Mock
from mephistopheles.messageformat import EventDataFrame
from mephistopheles.messageformat.types import adservers as pbufs
import time
import sys
class testDeserial(TestCase):
def generate_dummy_auction_event(self,url):
adunitinfo = pbufs.AdUnitInfo(index_on_page=0, url=url)
geoloc = pbufs.GeoLocation(country="DE", region="low")
userinfo = pbufs.UserInfo(user_hash=1,
ip_octets=1,
geolocation=geoloc,
language="en")
auctioninfo = pbufs.AuctionInfo(timestamp=int(time.time()),
user=userinfo,
ad_unit=adunitinfo)
return auctioninfo …Run Code Online (Sandbox Code Playgroud)