小编Col*_*ean的帖子

使用`rails server`和`rackup`有什么区别?

我注意到的唯一区别是rails server在端口3000上启动服务器,同时rackup在端口9292上启动服务器.

还有其他差异吗?

是否存在一个用例而不是另一个用例?

ruby rack ruby-on-rails thin webrick

9
推荐指数
1
解决办法
3327
查看次数

确定Terraform配置所需的最低AWS权限的最有效方法是什么?

我有一个针对AWS部署的Terraform配置.当使用有权做任何事情的IAM用户时(即{actions: ["*"], resources: ["*"]}.

为了实现Terraform配置的自动化应用,我想确定最初应用配置并影响后续更改所需的最小权限集.我特别想避免在政策中给予过多的权限,例如{actions: ["s3:*"], resources: ["*"]}.

到目前为止,我只是运行terraform apply直到发生错误.我查看输出或terraform日志输出以查看API调用失败,然后将其添加到部署用户策略中.EC2和S3特别令人沮丧,因为动作的名称似乎不一定与API方法名称一致.我有几个小时的时间用简单的方式告诉我多久了.

有没有更有效的方法来做到这一点?

如果Terraform建议我需要什么许可/行动,那将是非常好的,但这是Hashicorp最好的产品增强.

amazon-web-services terraform

7
推荐指数
4
解决办法
1141
查看次数

如何在Scala中使用反射获取所有对象值和子对象值?

我有一个看起来像这样的对象:

object Settings {
  final val Host = "host"
  final val Protocol = "protocol"

  object User {
    final val Name = "username"
    final val Password = "password"
  }

  object Subject {
    final val Query = "query"
    final val Predicate = "predicate"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是类似于membersAsHash(classOf[CollectionSettings])并接收哈希)我在对象中声明的所有val:

[
  Host => "host", 
  Protocol => "protocol", 
  Name => "username",
  Password => "password",
  Query => "query",
  Predicate => "predicate"
]
Run Code Online (Sandbox Code Playgroud)

如果键是一个字符串,即使是完整的包名称(例如com.example.Settings.User),也没关系.我真正需要的是价值观,所以如果我只能得到它,它仍然可以接受.

这让我得到了子对象的名称,但我似乎无法弄清楚如何获取每个子对象的内部值:

val optionsToCheck = {
  import scala.reflect.runtime.{universe => ru}
  val mirror = ru.runtimeMirror(getClass.getClassLoader) …
Run Code Online (Sandbox Code Playgroud)

reflection hash scala object

6
推荐指数
1
解决办法
2127
查看次数

如何在不危及其内容的情况下在 Terraform 中声明和引用 ECR 存储库?

我正在构建 Terraform 配置以将一些容器部署到 AWS ECS。显然,我必须将 Docker 镜像推送到 ECR。我在 ECR 中创建了一个存储库并推送了图像。

现在我正在自动化。如果我这样声明aws_ecr_repository

data "aws_ecr_repository" "service" {
  name = "myrepository"
}
Run Code Online (Sandbox Code Playgroud)

然后 Terraform 将管理它。我最终可以用类似的东西来引用它

image = "${aws_ecr_repository.myrepository.repository_url}"
Run Code Online (Sandbox Code Playgroud)

在构建 ECS 任务定义的过程中。

我的印象是,当我terraform destroy作为开发周期的一部分运行时,Terraform 会删除这个存储库——或者当它有图像时会失败。这会很糟糕,因为terraform destroy要么永远不会完成,要么我必须清除 ECR 存储库才能成功完成该命令。

如何最好地引用已经存在但我似乎不希望 Terraform 管理的 ECR 存储库,因为 Terraform 可能会破坏位于 Terraform 之外的数据,即发布 CI 作业上传的 Docker 图像?

docker terraform aws-ecs aws-ecr terraform-provider-aws

1
推荐指数
1
解决办法
2600
查看次数