Учитывая, что интеграция ALB Lambda в настоящее время не поддерживается Cloudformation, я пытаюсь написать простой скрипт для создания целевой группы, зарегистрировать лямбду в целевой группе и затем указать правило прослушивателя для этой целевой группы.
Это работает, когда я делаю это через пользовательский интерфейс, однако мои попытки зарегистрировать лямбда-мишень в целевой группе не удаются (как в скрипте python, так и в cli):
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the RegisterTargets operation: elasticloadbalancing principal does not have permission to invoke <LAMBDA ARN> from target group <TARGET GROUP ARN>
Ниже приведен скрипт Python, который делает это:
import boto3
import os
environment = os.environ['ENV']
cloudformation = boto3.resource('cloudformation')
elb = boto3.client('elbv2')
stack = cloudformation.Stack('boomerang')
output = [x for x in stack.outputs if x['ExportName'] == 'boomerang-beacon-lambda'][0]
beacon_arn = output['OutputValue']
response = elb.create_target_group(
TargetType='lambda',
Name='public-%s-boomerang-beacon' % environment
)
target_group_arn = response['TargetGroups'][0]['TargetGroupArn']
elb.register_targets(
TargetGroupArn=target_group_arn,
Targets=[
{
'Id': beacon_arn
},
]
)
Спасибо