小编bit*_*ain的帖子

如何在Jenkins作业DSL中加载AWS凭据?

我有以下DSL结构:

freeStyleJob {
  wrappers {
    credentialsBinding {
      [
         $class:"AmazonWebServicesCredentialsBinding",
         accessKeyVariable: "AWS_ACCESS_KEY_ID",
         credentialsId: "your-credential-id",
         secretKeyVariable: "AWS_SECRET_ACCESS_KEY"
      ]
     }
   }
   steps {
      // ACCESS AWS ENVIRONMENT VARIABLES HERE!
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.这样做的正确语法是什么?对于Jenkins管道,您可以:

withCredentials([[
$class: "AmazonWebServicesCredentialsBinding",
accessKeyVariable: "AWS_ACCESS_KEY_ID",
credentialsId: "your-credential-id",
secretKeyVariable: "AWS_SECRET_ACCESS_KEY"]]) {
  // ACCESS AWS ENVIRONMENT VARIABLES HERE!
}
Run Code Online (Sandbox Code Playgroud)

但是这种语法在正常的DSL作业groovy中不起作用.

tl; dr如何将AmazonWebServicesCredentialsBinding插件定义的AWS凭证导出到Groovy作业DSL的环境变量中?(不是PIPELINE PLUGIN语法!)

groovy credentials amazon-web-services jenkins jenkins-job-dsl

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

如何保持最后的X ECS任务定义有效?

我有以下Terraform代码使用新的任务定义来更新服务:

resource "aws_ecs_task_definition" "app_definition" {
  family = "my-family"

  container_definitions = "${data.template_file.task_definition.rendered}"
  network_mode          = "bridge"
}

resource "aws_ecs_service" "app_service" {
  name            = "my-service"
  cluster         = "my-cluster"
  task_definition = "${aws_ecs_task_definition.app_definition.arn}"
  desired_count   = "1"
  iam_role        = "my-iam-role"
}
Run Code Online (Sandbox Code Playgroud)

更新我的服务时,我的任务定义的上一个修订版本无效。结果,在尝试在ECS控制台中手动回滚到以前的版本时,无法选择它:

Error: No active task definition found
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望保持最近的X版本处于活动状态,以便在出现问题时始终可以通过控制台手动回滚。

我该如何实现?

amazon-web-services amazon-ecs terraform

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