Как мы можем передать идентификатор кластера для начальной загрузки - PullRequest
0 голосов
/ 22 октября 2019

Я создаю кластер EMR из terraform и вызываю пользовательский сценарий в качестве действия начальной загрузки, а моему пользовательскому сценарию требуется только что созданный идентификатор кластера. Я вижу, что есть опция для передачи аргумента в пользовательское действие, но оно мне не подходит. Я передаю идентификатор кластера как Cluster.Id Когда я проверил его в журнале, он не получает его значение.

startExec '/ emr / instance-controller / lib / bootstrap-actions / 1 /Updated_bootstrap_unix.sh Cluster.Id '

У кого-нибудь есть идея, как это сделать?

        provider "aws" {
     access_key="${var.aws_access_key}"
     secret_key="${var.aws_secret_key}"
     region="${var.region}"
                    }

    resource "aws_emr_cluster" "cluster" {
      name          = "${var.environment}-emr"
      release_label = "emr-5.27.0"
      applications  = ["Hadoop"]

      additional_info = <<EOF
    {
      "instanceAwsClientConfiguration": {
        "proxyPort": 8099,
        "proxyHost": "myproxy.example.com"
      }
    }
    EOF

      termination_protection            = false
      keep_job_flow_alive_when_no_steps = true

       ec2_attributes {
        subnet_id                         = "${var.sub_net_id}"
        emr_managed_master_security_group ="${var.master_security_group}"
        emr_managed_slave_security_group  = "${var.slave_security_group}"
        instance_profile                  = "EMR_EC2_DefaultRole"
        key_name                          = "${var.keypair}"
      }

      master_instance_group {
        instance_type = "m4.large"
        instance_count = 3
      }

      bootstrap_action {
        path = "${var.bootstrap_action_script}"
        name = "createfolder"
        args = ["instance.isMaster=false","clusterid=instance.Id"]
      }

      core_instance_group {
        instance_type  = "c4.large"
        instance_count = 3

        ebs_config {
          size                 = "10"
          type                 = "gp2"
          volumes_per_instance = 1
        }


      }

      ebs_root_volume_size = 10

      tags = {
        role = "rolename"
        env  = "dev"
      }




      service_role = "EMR_DefaultRole"
    }

Пример сценария настраиваемого действия:

 #!/bin/bash

      whoami
     sudo su


    echo "I got the cluster id "$1
     clusterid=$1

Спасибо

...