我正在尝试在AWS ECS中设置一个具有关联数据库的基本Web应用程序.在本地我将这些设置放在不同的容器中,在ECS上,我希望有单独的任务定义,以便我可以单独扩展它们.
david_mongodb
在ECS中成功注册了我的第一个任务定义.它有一个名为的容器david_mongodb
.david_web
,其中有一个名为david_web
链接数据库的容器david_mongodb:db
.单击"创建"时,会返回错误:
Unable to create Task Definition
Linked container 'david_mongodb:db' doesn't exist.
Run Code Online (Sandbox Code Playgroud)似乎任务定义无法在其他任务定义中看到容器名称?我正在考虑将两个容器david_web
和david_mongodb
容器放在同一个任务定义中会起作用,但我不想这样做:它会阻止我单独扩展Web应用程序或数据库.这个概述似乎证实我的架构是推荐的......
那么如何链接生活在不同任务定义中的容器?还是有另一种聪明的方法来处理这个问题?
在我的网络应用程序上使用Rails 4和Devise 3.1.0.我写了一个Cucumber测试来测试用户注册; 从电子邮件中单击"确认我的帐户"链接时失败.
Scenario: User signs up with valid data # features/users/sign_up.feature:9
When I sign up with valid user data # features/step_definitions/user_steps.rb:87
Then I should receive an email # features/step_definitions/email_steps.rb:51
When I open the email # features/step_definitions/email_steps.rb:76
Then I should see the email delivered from "no-reply@mysite.com" # features/step_definitions/email_steps.rb:116
And I should see "You can confirm your account email through the link below:" in the email body # features/step_definitions/email_steps.rb:108
When I follow "Confirm my account" in the email # features/step_definitions/email_steps.rb:178 …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个访问Google AnalyticsAPI的Ruby应用程序来提取一些实验信息.
该应用通过以下功能使用Google服务帐户进行连接和身份验证:
def connect
...
@@client = Google::APIClient.new(:application_name => 'My Service App',
:application_version => '1.0.0')
key_file = Rails.root.join('config', 'privatekey.p12').to_s
key_secret = 'somesecret'
key = Google::APIClient::PKCS12.load_key(key_file, key_secret)
asserter = Google::APIClient::JWTAsserter.new(
SECRETS[:google_service_account_email],
['https://www.googleapis.com/auth/yt-analytics.readonly',
'https://www.googleapis.com/auth/analytics.readonly'
],
key
)
@@client.authorization = asserter.authorize()
...
end
Run Code Online (Sandbox Code Playgroud)
...对API进行身份验证和发现,没有问题.
针对YouTube Analytics API使用客户端可以正常运行.使用相同的帐户通过...访问Analytics API
response = @@client.execute({
# 'analytics is the API object retrieved via discover_api()
:api_method => analytics.management.experiments.list,
:parameters => {
'accountId' => 'AAAAAAAA',
'profileId' => 'PPPPPPPP',
'webPropertyId' => 'UA-WWWWWWWW-#'
}
})
Run Code Online (Sandbox Code Playgroud)
结果出现403错误响应:
{"domain":"global","reason":"insufficientPermissions","message":"User does not have …
Run Code Online (Sandbox Code Playgroud) google-analytics google-api google-analytics-api google-api-client
我在亚马逊的弹性容器注册表(ECR)上有一个图像,我希望在我的Docker单节点群中部署为Docker服务.目前该服务正在运行图像latest
标签的旧版本,但我已经将更新版本的latest
标签上传到ECR.
docker service update --force my_service
在我的使用image的swarm节点上运行会XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest
导致:
无法在注册表上访问XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest以记录其摘要.每个节点将独立访问XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest,可能导致运行不同版本映像的不同节点.
这似乎阻止节点从latest
注册表中提取标签的新副本,并使服务正确更新.
我已正确登录docker login
ECR,并且运行docker pull XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest
正常(并返回摘要).
docker service update
尽管图像可用,为什么无法从ECR注册表中读取摘要?
我在单元测试项目中创建了一个测试,我希望在其中使用它的函数弹出一个FormShowDialog()
:
[TestMethod]
public void TestDialog()
{
// This class inherits from Form
TestForm serviceTestForm = new TestForm("My test form");
serviceTestForm.ShowDialog();
return;
}
Run Code Online (Sandbox Code Playgroud)
我希望这个测试能够到达ShowDialog()
并且无限期地运行,直到我关闭窗口.但是,当我"使用调试"运行此测试时,测试到达ShowDialog()
,并且不显示任何表单.奇怪的是,如果我运行"没有调试" ,这个完全相同的测试就可以工作.
我需要能够"通过调试"运行测试并显示窗口.
其他说明:
Show()
是不可取的,因为它不等待窗口关闭继续.(除此之外......它不起作用.)ShowDialog()
战略以前肯定有效.(是的,我直接复制了那个工作代码.)尝试将嵌套的自定义属性Profile(一个Mongoid文档)添加到我的设计用户类.提交Devise注册表单时,它还应创建用户和相应的Profile对象.
我希望最终结果在我的MongoDB中看起来像这样:
用户:
{
# Devise fields:
"email": "my@email.com",
...
# Custom field
"profile" : "<object_id>"
}
Run Code Online (Sandbox Code Playgroud)
轮廓:
{
"first_name": "Dave",
....
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,每当我提交注册时,我都会在控制台中收到此消息.它成功创建了一个用户,但无法创建关联的配置文件.
Started POST "/" for 127.0.0.1 at 2013-04-20 23:37:10 -0400
Processing by Users::RegistrationsController#create as HTML
Parameters:
{"utf8"=>"?",
"authenticity_token"=>"awN2GU8EYEfisU0",
"user"=>
{"profile_attributes"=>
{"first_name"=>"Dave",
"birthday(2i)"=>"4",
"birthday(3i)"=>"21",
"birthday(1i)"=>"1933",
"occupation_title"=>"Software Developer"},
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"email"=>"my@email.com"}}
Unpermitted parameters: profile_attributes
Run Code Online (Sandbox Code Playgroud)
我有设置:
车型/ user.rb:
class User
include Mongoid::Document
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, …
Run Code Online (Sandbox Code Playgroud) ruby-on-rails mongodb devise strong-parameters ruby-on-rails-4
我正在向我的网页添加一些SVG路径,但是我对Firefox 43.0有困难.看来,当我申请transform: scale(0.1)
我的路径时,Firefox不会更新边界客户端矩形(通过getBoundingClientRect()
)
这是变换前路径的截图,以及正确的边界矩形:
这里应用了变换,视觉清晰地位于边界框之外:
相比之下,Chrome是按预期更新其边界框.(注意约束比例.)
Chrome或Edge上不存在此问题.我确实从2012年发现了这个旧版本的bug,该版本说明问题已在版本12.0中修复,文档说明:
从Gecko 12.0(Firefox 12.0/Thunderbird 12.0/SeaMonkey 2.9)开始,在计算元素的边界矩形时会考虑CSS变换的效果.
......似乎不是真的.对于其他浏览器,我将我的圆圈缩小到其原始大小的10%,然后计算客户端矩形的坐标偏移量,使其居中于原始的100%比例位置.但是,由于在Firefox中进行转换后客户端矩形没有更新,因此它会搞乱计算.
我如何解决这个问题?
我正在尝试了解分布式哈希表(DHT)范例,因为它适用于P2P或完全分布式计算架构.从理论的角度来看,一旦集群建立起来,它就会对如何设计群集数据和分配工作有所了解.
对我来说最有趣的部分是架构从不需要某种集中控制器或协调器(没有单点故障).但是,我仍然在努力理解概念的实际执行,特别是集群是如何形成的.如果它是一个完全分布式系统,节点如何知道如何"加入"已经建立的集群?
在一个简单的例子中:
那么,如果没有任何集中式服务器充当信标,或者提供将新客户端引入集群的方法,新客户端如何"连接"?
我正在尝试对我的 Web 服务器进行 AJAX 调用以获取有关城市的信息。
.ajax()
被触发到“/data/[ city ]”alert()
使用它检索到的 JSON 对象进行调用。代码:
$( document ).ready(function() {
$('#city').change(function () {
var city = $.trim($(this).val()).replace(/ /g,"-");
if(city.length > 0)
{
var url = "/data/cities/" + city;
$.ajax({
url: url,
context: document.body,
dataType: 'json'
}).done(function(data) {
alert(data);
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
出于某种原因,该.ajax()
调用有时会拒绝触发。当url
等于时,永远不会发出传出的 HTTP 请求:
/data/cities/New-York,-NY
但是,它在url
等于时成功触发:
/data/cities/New-York-NY
(没有逗号)/data/cities/New-York,NY
(没有破折号)/data/cities/New-York,-NYC
(附加字符)/data/cities/Ann-Arbor,-MI
(类似格式)我已经验证:
我的应用程序使用带有 的普通 Ruby 类ActiveModel::Validations
,而没有实现ActiveRecord
:
class Car
include ::ActiveModel::Validations
attr_accessor :engine
end
class Engine
include ::ActiveModel::Validations
attr_accessor :cylinders
validates_presence_of :cylinders
end
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想Car
检查 的嵌套属性。ActiveModel::Validations
engine
car = Car.new
car.engine = Engine.new
car.engine.valid? # => false
car.valid? # => true
# It should return 'false',
# because 'engine.cylinders' is 'nil'
Run Code Online (Sandbox Code Playgroud)
获得这种行为的最简单方法是什么?
我有一些“产品”对象:
{ name: 'ProductA',
social_stats: [
{ name: 'facebook',
shares: 60
},
{ name: 'twitter',
shares: 0
}
]
}
{ name: 'ProductB',
social_stats: [
{ name: 'facebook',
shares: 0
},
{ name: 'twitter',
shares: 30
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想查询“Facebook 上分享最多的产品”和“Twitter 上分享最多的产品”,总是按分享次数从多到少排序。
所以我对 Facebook 的第一个查询如下所示:
db.videos.find({
_id: {
social_stats: {
$elemMatch: {
name: 'facebook'
}
}
}
).sort( {
social_stats: {
shares: -1
}
})
Run Code Online (Sandbox Code Playgroud)
产量:
{ name: 'ProductA' }
{ name: 'ProductB' }
Run Code Online (Sandbox Code Playgroud)
这是“正确的”,但是当我对“twitter”运行相同的查询时,我期望 B->A,但收到与上面相同的输出。它似乎没有按照我的意图将 where 和排序逻辑一起应用,即“按与‘twitter’匹配的social_stat 元素排序”。
我在寻找什么 …
在我的应用程序中,用户描述建筑物 用户应该能够使用分组选择来指定建筑物存在于哪个邻域中.模型看起来像:
class Building
include Mongoid::Document
belongs_to :neighborhood
end
class Neighborhood
include Mongoid::Document
field :name, type: String, default: nil
field :borough, type: String, default: nil
field :city, type: String, default: nil
end
Run Code Online (Sandbox Code Playgroud)
使用simple_form,我试图生成一个分组选择表示建筑物可能属于的邻域列表.
= building_form.association :neighborhood, as: :grouped_select, collection: Neighborhood.where(city: city), group_method: :borough
Run Code Online (Sandbox Code Playgroud)
理想情况下,这样可以创建:
Borough #1
Downtown
Uptown
Borough #2
Suburbs
...
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
undefined method `map' for "Borough #1":String
Run Code Online (Sandbox Code Playgroud)
看起来它正在调用Neighborhood.borough.map
,并且因为String没有map
函数,所以它会出错.我该如何解决?
devise ×2
docker ×2
mongodb ×2
.net ×1
activemodel ×1
ajax ×1
amazon-ecs ×1
architecture ×1
c# ×1
css ×1
docker-swarm ×1
firefox ×1
forms ×1
google-api ×1
html ×1
javascript ×1
jquery ×1
mongoid ×1
p2p ×1
ruby ×1
simple-form ×1
svg ×1
testing ×1
theory ×1
validation ×1
winforms ×1