Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 地形AWS批次作业定义参数(AWS\u批次作业定义)_Terraform_Terraform Provider Aws_Aws Batch - Fatal编程技术网

Terraform 地形AWS批次作业定义参数(AWS\u批次作业定义)

Terraform 地形AWS批次作业定义参数(AWS\u批次作业定义),terraform,terraform-provider-aws,aws-batch,Terraform,Terraform Provider Aws,Aws Batch,我试图理解在启动AWS批处理作业时如何进行参数替换。我需要做的是为我的AWS批处理作业提供一个S3对象键。我还没有找到一个Terraform示例,其中参数被传递给批处理作业,而我似乎无法让它工作 的文档包含以下示例: resource "aws_batch_job_definition" "test" { name = "tf_test_batch_job_definition" type = "container&q

我试图理解在启动AWS批处理作业时如何进行参数替换。我需要做的是为我的AWS批处理作业提供一个S3对象键。我还没有找到一个Terraform示例,其中参数被传递给批处理作业,而我似乎无法让它工作

的文档包含以下示例:

resource "aws_batch_job_definition" "test" {
  name = "tf_test_batch_job_definition"
  type = "container"

  container_properties = <<CONTAINER_PROPERTIES
{
    "command": ["ls", "-la"],
    "image": "busybox",
    "memory": 1024,
    "vcpus": 1,
    "volumes": [
      {
        "host": {
          "sourcePath": "/tmp"
        },
        "name": "tmp"
      }
    ],
    "environment": [
        {"name": "VARNAME", "value": "VARVAL"}
    ],
    "mountPoints": [
        {
          "sourceVolume": "tmp",
          "containerPath": "/tmp",
          "readOnly": false
        }
    ],
    "ulimits": [
      {
        "hardLimit": 1024,
        "name": "nofile",
        "softLimit": 1024
      }
    ]
}
CONTAINER_PROPERTIES
}
resource“aws\u批处理作业\u定义”“测试”{
name=“tf\u测试\u批量\u作业\u定义”
type=“容器”

容器属性=aws\u批处理作业定义的地形文档。参数目前非常稀少

但是,通过对aws中的现有作业运行
aws批处理描述作业--jobs$job_id
,参数对象似乎需要一个映射:

{
    "jobs": [
        {
            "parameters": {},
            "container": {
                "image": "",
                "command": []
            }
        }
    ]
}

因此,您可以使用Terraform使用map变量定义批处理参数,然后在批处理资源命令定义中使用CloudFormation语法,如
Ref::myVariableKey
,提交AWS作业后,该语法将正确插入。示例:

variable "batch_params" {
  type  = map
  default = {
    bucketName = "defaultBucketName",
  }
}

resource "aws_batch_job_definition" "test" {
  name = "tf_test_batch_job_definition"
  type = "container"

  parameters = var.batch_params

  container_properties = <<CONTAINER_PROPERTIES
{
    "command": ["Ref::bucketName"],
    "image": "busybox",
    "memory": 1024,
    "vcpus": 1,
    "volumes": [
      {
        "host": {
          "sourcePath": "/tmp"
        },
        "name": "tmp"
      }
    ],
    "environment": [
        {"name": "VARNAME", "value": "VARVAL"}
    ],
    "mountPoints": [
        {
          "sourceVolume": "tmp",
          "containerPath": "/tmp",
          "readOnly": false
        }
    ],
    "ulimits": [
      {
        "hardLimit": 1024,
        "name": "nofile",
        "softLimit": 1024
      }
    ]
}
CONTAINER_PROPERTIES
}
变量“批处理参数”{
类型=映射
默认值={
bucketName=“defaultBucketName”,
}
}
资源“aws\u批处理\u作业\u定义”“测试”{
name=“tf\u测试\u批量\u作业\u定义”
type=“容器”
参数=变量批处理参数
容器属性=