AWS ALB с лямбда-целью через шаблон Cloudformation

Я пытаюсь создать «AWS :: ElasticLoadBalancingV2 :: TargetGroup» с целевым объектом «лямбда» с помощью моего шаблона Cloudformation.

Если я не укажу порт, я получаю сообщение об ошибке, указывающее, что порт требуется.

Но если я укажу порт с целевым типом «лямбда», я получаю сообщение об ошибке, что порт не должен указываться для лямбда целевого типа ...

Как я могу автоматизировать с помощью команд CFT или aws cli создание целевой группы, указывающей на мои лямбда-выражения ARN?




Ответы (1)


Поэтому я бы сделал следующее, используя AWS cli. Создание целевой группы;

создать файл с именем, например target-group.json, с содержимым;

{
    "Name": "nameOfTagretGroup",
    "TargetType": "lambda"
}

а затем запустите aws elbv2 create-target-group --cli-input-json target-group.json. Или используя только aws cli;

aws elbv2 create-target-group --name $targetName  --target-type lambda

Затем создайте файл с именем, например, register-lambda.json, с содержимым;

{
    "TargetGroupArn": "ARN_OF_CREATED_TARGET_GROUP",
    "Targets": [
        {
            "Id": "Lambda_ARN",
            "AvailabilityZone": "AZ_OF_YOUR_LAMBDA"
        }
    ]
}

а затем запустить; aws elbv2 регистр-цели --cli-input-json register-lambda.json. Или просто используя ввод командной строки;

aws elbv2 register-targets --target-group-arn $target_arn --targets Id=$Lambda_ARN,AvailabilityZone=AZ_OF_YOUR_LAMBDA

Я считаю, что это должно сработать для вас и решить ваши проблемы.

person marcincuber    schedule 22.02.2019
comment
Спасибо! вернет ли эта команда - aws elbv2 create-target-group --cli-input-json target-group.json - только arn созданной целевой группы? Я подумываю сделать что-то подобное, чтобы сохранить это как ценность. targetarn = $ {aws elbv2 create-target-group --cli-input-json target-group.json}. это сработает? @MC_ - person bzim; 22.02.2019
comment
обратитесь к документации - ›cli docs для создать целевую группу. Я считаю, что вы могли бы запустить targetarn = $ (aws elbv2 create-target-group --cli-input-json target-group.json | jq -r .TargetGroups.TargetGroupArn). В этом случае ваша переменная targetarn будет содержать целевую группу arn. Однако здесь используется jq, вы также можете получить тот же результат, используя чисто aws cli. надеюсь, это поможет - person marcincuber; 23.02.2019
comment
он не позволяет мне использовать переменные в файлах .json, которые я создаю .. пример - json = '{Name:' \ $ targetName \ ', TargetType: lambda}' - я получаю ошибку Ошибка при анализе параметра 'cli-input-json' : Недопустимый JSON: объект JSON не может быть декодирован - person bzim; 25.02.2019
comment
В вашем файле JSON не может быть переменных. Похоже, вы не знакомы с этим форматом. В этом случае я бы предложил использовать aws elbv2 create-target-group --name $ targetName --target-type lambda. - person marcincuber; 25.02.2019