小编yda*_*coR的帖子

浮点问题

我知道在大多数编程语言中浮点数并不是100%准确,但我刚才遇到了一个奇怪的问题.我还在学习Python,所以制作了一个简单的程序来计算尽可能少的硬币给出的变化.然而,当它达到0.02时,似乎无法给出2p硬币,而是将其分成2个1p硬币.代码段如下所示:

....
elif amountLeft / 0.02 >= 1:
    changeGiven.append("2p")
    amountLeft -= 0.02
else:
    changeGiven.append("1p")
    amountLeft -= 0.01
Run Code Online (Sandbox Code Playgroud)

我一直在看着它http://www.pythontutor.com并明确有0.02amountLeft对任何事物的最后一次迭代,将转降低到.当我检查时,print 0.02 / 0.02 >= 1True按预期回来了.

我在这里错过了什么明显的东西?

python floating-point floating-accuracy

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

在Talend中thashoutput/input和tbufferoutput/input之间的差异

我不清楚Talend中使用tHash和tBuffer组件之间的区别.

我正在考虑在Impala表中存储tMap的结果以及在内存(缓存)中存储另一个副本,并对此执行其他转换以最终写入表.

caching talend impala

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

使用Terraform更新ECS服务无法发出新任务

在推送我的容器的新图像后,我使用Terraform apply来更新任务定义.这似乎工作正常,但在ECS服务任务列表中,我可以看到任务处于非活动状态,我有一个事件:

service blahblah was unable to place a task because no container instance met all of its requirements. The closest matching container-instance [guid here] is already using a port required by your task.

问题是,该网站仍然活跃和工作.

amazon-web-services terraform aws-ecs

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

Terraform:ECS 服务 - InvalidParameterException

我正在尝试使用 terraform 配置 ECS 集群,在我创建 ecs 服务之前,一切似乎都运行良好:

resource "aws_ecs_service" "ecs-service" {
  name            = "ecs-service"
  iam_role        = "${aws_iam_role.ecs-service-role.name}"
  cluster         = "${aws_ecs_cluster.ecs-cluster.id}"
  task_definition = "${aws_ecs_task_definition.my_cluster.family}"
  desired_count   = 1

  load_balancer {
    target_group_arn  = "${aws_alb_target_group.ecs-target-group.arn}"
    container_port    = 80
    container_name    = "my_cluster"
  }
}
Run Code Online (Sandbox Code Playgroud)

IAM 角色是:

resource "aws_iam_role" "ecs-service-role" {
  name = "ecs-service-role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_iam_role_policy_attachment" "ecs-service-role-attachment" {
    role       = "${aws_iam_role.ecs-service-role.name}" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs amazon-iam terraform

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

Terraform - 将哪些文件添加到 Git 的最佳实践?

创建main.tf并执行后terraform apply

创建了以下文件:

  • terraform.tfstate
  • .terraform/

我应该将这些文件添加到 Git 中吗?

terraform

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

如何跳过使用Terraform破坏资源的工作?

我最近使用Cloudfront,S3和WAF测试并创建了一个UI。

我对Cloudfront模块进行了一些更改,并对创建的WAF ACL名称进行了硬编码,以便每次执行terraform apply时都将使用我创建的WAF。然后,我从代码中删除了WAF模块。

当我尝试执行其他操作时,terraform apply它说WAF将被销毁。我以为是因为删除了WAF模块。

有没有一种方法可以执行terraform plan/ apply跳过销毁先前部署中最近部署的WAF?

terraform

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

使用Terraform将多个S3路径添加到胶履带

我正在使用Terraform在AWS中构建一些基础架构。我创建了几个S3存储桶,并希望Glue搜寻器每小时对这些存储桶进行一次爬网。我的Terraform Glue目录数据库,角色和策略都构建良好,但是当我尝试通过向爬网程序的s3_target{}一部分添加四个S3路径来创建爬网程序资源时,出现了故障:

resource "aws_glue_crawler" "datalake_crawler" {
  database_name = "${var.glue_db_name}"
  name          = "${var.crawler_name}"
  role          = "${aws_iam_role.glue.id}" 

  s3_target {
#    count = "${length(var.data_source_path)}"
    path = "${var.data_source_path}"#"${formatlist("%s", var.data_source_path)}"
  }
}
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

Error: aws_glue_crawler.datalake_crawler: s3_target.0.path must be a single value, not a list
Run Code Online (Sandbox Code Playgroud)

我尝试在中添加一条count语句,s3_target但这失败。我也尝试添加

"${formatlist("%s", var.data_source_path)}"
Run Code Online (Sandbox Code Playgroud)

path争论中,但这也失败了。

我可以s3使用Terraform向Glue履带添加多个路径吗?我可以通过AWS控制台实现这一点,但这需要使用基础架构作为代码来完成。

amazon-s3 amazon-web-services terraform aws-glue terraform-provider-aws

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

使用 Terraform 的 CloudWatch 指标警报

当尝试使用 Terraform 设置某些 CloudWatch 警报时,由于某种原因,它找不到指标,并且警报仍然陷入数据不足的状态。Terraform 不会输出任何错误,如果我在 AWS 中手动搜索,我可以找到指标。我在这里缺少什么?

指向目标组的简单健康主机警报示例:

#healthy host alarm
resource "aws_cloudwatch_metric_alarm" "health" {
  alarm_name          = "${var.tag_app}_healthy_host"
  comparison_operator = "LessThanThreshold"
  evaluation_periods  = "1"
  metric_name         = "HealthyHostCount"
  namespace           = "AWS/ApplicationELB"
  period              = "60"
  statistic           = "Maximum"
  threshold           = "1"
  alarm_description   = "Healthy host count for EC2 machine"
  alarm_actions       = ["${data.aws_sns_topic.blabla.arn}"]
  ok_actions          = ["${data.aws_sns_topic.blabla.arn}"]

  dimensions = {
    TargetGroup  = "${aws_lb_target_group.alb_target.arn_suffix}"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我选择另一个资源(EC2、RDS)和另一个指标时,我会收到指向正确指标的 CloudWatch 警报,并且它不会陷入数据不足的困境。

amazon-web-services amazon-cloudwatch terraform terraform-provider-aws

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

如何在资源更新/创建后运行 AWS Glue Crawler?

我在 Terraform 中定义了一个资源来创建我不想安排的 Glue Crawler。但我希望它在创建和更新后运行。我在文档中找不到有关如何触发此操作的任何内容。

resource "aws_glue_crawler" "my_crawler" {
  database_name = "my_db"
  name          = "my_crawler"
  role          = "arn:aws:iam::111111111111:role/service-role/someRole"

  s3_target {
    path = "s3://my_bucket/key/prefix"
  }

}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-glue terraform-provider-aws

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

如何将多个 IAM 角色附加到 AWS 上的实例配置文件?

我正在使用 Terraform 创建 IAM 和 EC2,如下所示。

我想将一个名为ec2_roleEC2 实例配置文件的角色附加到该 EC2 实例配置文件中。但它似乎只能附加由 . 创建的一个aws_iam_instance_profile

resource "aws_instance" "this" {
  # ..
  iam_instance_profile    = aws_iam_instance_profile.this.name
}

resource "aws_iam_instance_profile" "this" {
  name = "ec2-profile"
  role = aws_iam_role.ec2_role.name
}
Run Code Online (Sandbox Code Playgroud)

关于ec2_role,它使用ec2_role_policy. 但如果我设置source_json = data.aws_iam_policy.amazon_ssm_managed_instance_core.policydata "aws_iam_policy_document" "ec2_role_policy" {,它会引发错误。

resource "aws_iam_role" "ec2_role" {
  name               = "ec2-role"
  assume_role_policy = data.aws_iam_policy_document.ec2_role_policy.json
}

resource "aws_iam_policy" "ec2_policy" {
  name   = "ec2-policy"
  policy = data.aws_iam_policy_document.ec2_use_role_policy.json
}

resource "aws_iam_role_policy_attachment" "attach" {
  role       = …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-iam terraform terraform-provider-aws

2
推荐指数
2
解决办法
2107
查看次数