Настройка Lambdas к API шлюза между счетами - PullRequest
0 голосов
/ 04 мая 2020

Таким образом, у нас есть 3 разных аккаунта (EDGE, PROD, DEV). Я хочу создать несколько API в учетной записи EDGE и интегрировать их с лямбдами в DEV и PROD Account соответственно. У меня есть 2 различных этапа API: dev / prod, а также определена интеграция API: LAMBDA с target = $ {stageVariables.LAMBDA}. Когда я упоминаю полный ARN LAMBDA в переменных этапа, он показывает следующую ошибку после попадания API:

{
"message": "1 validation error detected: Value \'arn:aws:lambda:ap-south-1:XXEDGEACCOUNTXX:function:arn:aws:lambda:ap-south-1:XXDEVACCOUNTXX:function:funcName\' at \'functionName\' failed to satisfy constraint: Member must satisfy regular expression pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_\\.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?"
}

с

target = arn:aws:lambda:ap-south-1:${stageVariables.ACC}:function:${stageVariables.LAMBDA}/invocations

Я получаю ошибку неверной функции ARN или URI при сохранении это ..

Пожалуйста, помогите. PS. Политика разрешений прилагается отлично. Проблема заключается в том, что API-шлюз проверяет Lambda только в своей учетной записи, поэтому имя функции только для чтения и номер счета фиксированы.

1 Ответ

0 голосов
/ 04 мая 2020

В приведенном ниже утверждении есть ошибка

target = arn:aws:lambda:ap-south-1:${stageVariables.ACC}:function:${stageVariables.LAMBDA}/invocations

$ {stageVariables.LAMBDA} в приведенном выше утверждении разрешается в лямбда-функцию arn. Следовательно, есть ошибка проверки.

arn:aws:lambda:ap-south-1:XXEDGEACCOUNTXX:function:arn:aws:lambda:ap-south-1:XXDEVACCOUNTXX:function:funcName

Кроме того, заметили, что цель вашего здания неверна и должна иметь следующую форму

Вместо переменной можно использовать этап Имя лямбда-функции или версия / псевдоним, как показано в следующих примерах.

arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations

arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations

Для получения дополнительной информации можно go по этой ссылке

https://docs.aws.amazon.com/apigateway/latest/developerguide/aws-api-gateway-stage-variables-reference.html

...