小编Mar*_*cin的帖子

Zend Framework:如何从HeadLink助手中取消设置一个样式表

我在Controller init()中有一个常见样式列表:

$this->view->headLink()->setStylesheet('/style/style.css');
$this->view->headLink()->appendStylesheet('/style/style2.css');
$this->view->headLink()->appendStylesheet('/style/style3.css');
$this->view->headLink()->appendStylesheet('/style/forms.css');
$this->view->headLink()->appendStylesheet('/style/ie_patches.css','all','lte IE 7');
Run Code Online (Sandbox Code Playgroud)

我需要的是稍后在该控制器的一个动作中从堆栈中删除其中一个样式表的方法.

感谢您的帮助,请原谅我的英语

php zend-framework stylesheet viewhelper

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

Python:双重排序

是否有一种快速简便的方法来对包含两个项目的元组列表进行排序?(我要排序的元组的简短列表:

[('this', 4), ('in', 4), ('dedicated', 4), ('who', 3), ('us', 3), ('they', 3), ('so', 3), ('shall', 3), ('people', 3), ('is', 3), ('great', 3), ('dead', 3), ('are', 3), ('It', 3), ('which', 2), ('what', 2)]
Run Code Online (Sandbox Code Playgroud)

我试图首先按频率(最大的第一个)排序它们,所以数字,然后按字母顺序排序.

这是我到目前为止:

word_list.sort(key=itemgetter(1,0), reverse = True)
Run Code Online (Sandbox Code Playgroud)

这按频率按降序对列表进行排序.

python sorting

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

Terraform AWS:无法使用通过 aws_launch_configuration 启动的 AWS EC2 实例重用先前创建的 root_block_device

我已经使用 terraform 将 ELK 堆栈部署到 AWS ECS。几个星期以来,一切都运行良好,但 2 天前我不得不重新启动实例。

遗憾的是,新实例并不依赖于现有卷来挂载根块设备。因此,我的 Kibana 实例无法再使用我的所有 elasticsearch 数据。

数据仍然在这里,在以前的卷上,目前没有使用。

所以我尝试了很多方法来将这个卷附加到“dev/xvda”,但没有例如:

  • 使用 ebs_block_device 而不是 root_block_device 使用
  • 当实例已经运行时交换“dev/xvda”

我正在使用带有 aws_launch_configuration 的 aws_autoscaling_group。

resource "aws_launch_configuration" "XXX" {
  name = "XXX"
  image_id = data.aws_ami.latest_ecs.id
  instance_type = var.INSTANCE_TYPE
  security_groups = [var.SECURITY_GROUP_ID]
  associate_public_ip_address = true
  iam_instance_profile = "XXXXXX"

  spot_price = "0.04" 
  lifecycle {
    create_before_destroy = true

  }

  user_data = templatefile("${path.module}/ecs_agent_conf_options.tmpl",
    {
      cluster_name = aws_ecs_cluster.XXX.name
    }
  )

//The volume i want to reuse was created with this configuration. I though it …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs terraform terraform-provider-aws

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

每个资源的 for_each 循环的输出

我很难弄清楚如何为这段代码创建的每个目标组资源输出。我希望能够在其他模块中单独引用每一个。听起来 for_each 将其存储为地图,所以我的问题是如何获得 targetgroup1 和 targetgroup2 的 arn?Terraform 通常按资源名称指代输出,因此在这种情况下我正在努力解决这个问题,以及如何引用这些单独的 arn。我是否还需要将输出处理到 for_each 中,还是可以将其放入 output.tf 文件中?

locals {
  target_groups_beta = {
    targetgroup1 = {
      name = "example",
      path = "/",
      environment = "Beta"
    }
    targetgroup2 = {
      name = "example2",
      path = "/",
      environment = "Beta"
    }
    }
  }

resource "aws_lb_target_group" "target-group" {
  for_each = local.target_groups_beta
  name     = "example-${each.value.name}-"
  port     = 80
  protocol = "HTTP"
  vpc_id   = var.vpc-id
  deregistration_delay = 5

  tags = {
    Environment = "${each.value.environment}"
  }

  health_check{
  healthy_threshold = 2 …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform

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

有什么方法可以将 terraform 的表达式分成多行吗?

我想知道如何将 terraform 表达式分成多行,因为它们有时在 1 行中太长。

  • 我使用的terraform版本
$ terraform version
Terraform v0.14.2
Run Code Online (Sandbox Code Playgroud)
  • 长表达式示例:如果未指定存储桶名称,则创建新的存储桶名称。如果指定,请使用它。
locals {
  bucket_name = var.bucket_name == "" ? "hoge-${formatdate("YYYYMMDDHHmmss", timestamp())}" : var.bucket_name
}
Run Code Online (Sandbox Code Playgroud)
  • 我想更改示例表达式,如下所示
locals {
  bucket_name = var.bucket_name == "" ? \
                "hoge-${formatdate("YYYYMMDDHHmmss", timestamp())}" : \
                 var.bucket_name
}

Run Code Online (Sandbox Code Playgroud)

但这引发了Error: Invalid expression.

有没有办法将一个表达式分成多行?

amazon-web-services terraform terraform-provider-aws

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

Terraform通过数据找到最新的ami

我正在尝试实现某种机制,让某人可以填写一个变量,该变量定义是要部署 Amazon Linux 机器还是自行创建的打包机。但由于某种原因,它在找到我自己的 AMI 的同时却没有找到 AWS AMI。这是代码:

模块的Main.tf:

    data "aws_ami" "latest" {
  most_recent = true
  owners      = [var.owner]

  filter {
    name   = "name"
    values = [lookup(var.default_ami, var.ami)]
  }
}

resource "aws_instance" "test-ec2deployment" {
  ami                         = data.aws_ami.latest.id
Run Code Online (Sandbox Code Playgroud)

变量.tf:

variable "default_ami" {
  type        = map
  description = "Choose windows 2016 or 2019"
  default = {
    "2016"  = "WIN2016-CUSTOM*"
    "2019"  = "WIN2019-CUSTOM*"
    "linux" = "ami-0fb02dcdd38048fb9"
  }
}

#Above are the options, here you need to make a decision.
variable "ami" {
  description …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform terraform-provider-aws terraform0.12+

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

如何使提供程序假设_角色块有条件

我有一个provider块,我想为其提供assume_role属性,但前提是它没有在我的本地计算机上运行。

islocal我在所有环境文件中定义了一个变量.tfvars,只有本地文件的值为true.

这是provider块:

provider "aws" {
    region = var.region1
    profile = var.islocal == true ? "default" : null # ONLY USED LOCALLY
    
    assume_role {       # NOT TO BE USED LOCALLY
        role_arn = var.terraform_execution_role
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 如果我将该role_arn属性设置为null是否会使该assume_role块无效?(即:与不存在相同)
  2. 如果该assume_role块确实有影响,即使值为role_arnnull我怎样才能在为 时完全删除var.islocaltrue

我考虑过动态块,但我不确定如何构建它。

amazon-web-services conditional-statements terraform terraform-provider-azure

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

调用DescribeTaskDefinition操作时发生错误(ClientException)

我在通过运行 bitbucket 管道描述 ecs 任务定义时遇到问题。

我面临的问题如下,

调用DescribeTaskDefinition操作时发生错误(ClientException)

我用来通过 bitbucket 管道中的 shell 脚本执行的命令如下,

LATEST_TASK_DEFINITION=$(aws ecs describe-task-definition  --task-definition ${TASK_FAMILY})

echo $LATEST_TASK_DEFINITION \
                 | jq '{containerDefinitions: .taskDefinition.containerDefinitions, volumes: .taskDefinition.volumes}' \
                                          | jq '.containerDefinitions[0].image='\"${DOCKER_IMAGE}\" \
                                                           > /tmp/tmp.json
Run Code Online (Sandbox Code Playgroud)
aws ecs register-task-definition --family ${TASK_FAMILY} --cpu 256 --memory 512 --network-mode awsvpc --requires-compatibilities "FARGATE" --task-role-arn arn:aws:iam::xxxxxxx:role/ECSTaskExecutionRole --execution-role-arn arn:aws:iam::xxxxxxx:role/ECSTaskExecutionRole --cli-input-json file:///tmp/tmp.json
Run Code Online (Sandbox Code Playgroud)

位桶中的问题

但是当我从 Linux 终端运行相同的命令时,它就会运行。

有人面临这样的问题吗?

提前致谢。

bitbucket amazon-web-services bitbucket-pipelines

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

什么是 EFS 挂载目标以及为什么我们要创建多个挂载目标

谁能解释一下 AWS EFS 挂载目标是什么意思?AWS文档说它是供你访问EFS的,我不明白。

我对EFS挂载目标的理解是:当你创建EFS时,在后端,AWS需要选择一个位置来启动服务器,这就是为什么它会要求你提供VPC、子网信息,就像你创建EC2时一样,您需要告知您想要启动此 EC2 的 VPC、子网。但为什么所有 AWS 文档和教程都会教您创建多个挂载目标,每个子网一个?挂载目标的安全组不足以控制对 EFS 的访问吗?

谁能解释一下 EFS 挂载目标的用途是什么以及为什么我们需要多个挂载目标,每个子网一个?谢谢

amazon-web-services amazon-efs

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

干净的 Boto3 分页

我正在尝试找到一个非常好的 python 习惯用法,以最“pythonic”的方式使用 aws boto3 分页器。以下是我能想到的最好的,但我仍然不满意。关于如何使分页更简单的任何想法,可能不使用while True:

import boto3

client = boto3.client('acm', region_name='ap-southeast-2')

paginator = client.get_paginator('list_certificates')
response_iterator = paginator.paginate()

while True:
    for certificates in response_iterator:
        for certificate in certificates['CertificateSummaryList']:
            print(certificate)

    if response_iterator.resume_token:
        response_iterator = paginator.paginate(
            PaginationConfig={
                'StartingToken': response_iterator.resume_token
            })
    else:
        break
Run Code Online (Sandbox Code Playgroud)

python pagination amazon-web-services boto3

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