Bash/Shell - Вложенные переменные для свойства Dynamic UDeploy

Мне нужна небольшая помощь с процессом, который мы пытаемся построить, который должен быть способен динамически реагировать.

Процесс идет немного примерно так. Пользователь отправит запрос процесса в среду, отправив массив строковых значений в качестве значения времени выполнения. Процесс примет их в качестве массива в bash и перебирает их, проверяя их на соответствие заранее заданному списку строк на достоверность. После обнаружения они действительны, реагируя по-разному, исходя из того, какие значения находятся в строке.

Пример: пользователь отправляет запрос процесса со значениями "abc", "bcd", "cde", "def"Ценности "abc", "bcd", and "def" действительны.

Мы делаем немного манипуляций, чтобы сделать их пригодными для использования:

echo ${p:inputArray}
inputArray="${p:inputArray}"
inputArray=${inputArray//]/}
inputArray=${inputArray//[/}
inputArray=${inputArray//,/}
inputArray=( "${inputArray[@],,}" )

Затем выполните цикл по каждому значению и отреагируйте:

for inputValue in $inputArray; do
    if [[ "${validInputArray[@]}" =~ "${inputValue}" ]]; then
         // Check if value is the outlier case "A"
         // Or if the value is normal (but multiple) case "B"
         // If case "B" then we'll build a variable for it
         // It should be something like ${p:environment/$inputValue.action}

Это, в идеале, даст мне значение ${p:environment/abc.action}, например. Но это не так. Это дает мне строку. У меня нет возможности оценить динамически созданный запрос свойства, так как все свойства оцениваются при инициализации, а не на лету.

Мы можем справиться с этим методом "case" - но это немного уродливо, и будет только уродливее, когда наше количество допустимых входных данных будет расти.

1 ответ

Вместо того, чтобы отправлять ему массив значений, вы можете настроить UCD, чтобы запрашивать их для определенных значений. Вы можете сделать это в процессе подачи заявки. Таким образом, когда пользователь запускает развертывание, нет сомнений в правильности ввода.

На странице процесса приложения нажмите ссылку Свойства процесса приложения.

Оттуда вы можете настроить его так, чтобы он требовал определенного шаблона (проверяется с помощью регулярных выражений) или явных значений из выпадающего списка, необработанного текста, dateTime и т. Д. Здесь я настроил свойство множественного выбора, чтобы разрешить конкретную JVM максимальные значения кучи. Ограничивая это конкретными значениями, вы можете избежать опечаток и неудачных развертываний.

После настройки при запуске процесса вам предоставляется свойство в интерфейсе:

Другие вопросы по тегам