У меня есть функция AWS Lambda (Python), над которой я работаю, и я пытаюсь получить идентификатор своей учетной записи AWS через переменную среды.
OWNER_ID = os.environ['ACCOUNT_ID']
Функция со временем получит свое значение изшаблон CloudFormation, который его развертывает.
"Environment": {
"Variables": {
"ACCOUNT_ID": {"Ref": "AWS::AccountId"}
}
},
Я отправляю эти изменения в Git-репозиторий моей компании, где он затем проходит тест сборки Jenkins Pipeline.Каждый раз тест сборки завершается ошибкой, когда он видит переменную ACCOUNT_ID
и выдает KeyError, очевидно, потому что у него нет ссылки на эту переменную в списке переменных среды.ПРИМЕЧАНИЕ: у меня нет возможности / полномочий добавить эту переменную env в Jenkins.
Я добавил env var в модульный тест, который выполняется для этой конкретной лямбды:
os.environ['ACCOUNT_ID'] = "xxxxxxxxxxxx"
Но все еще не работает, потому что модуль модульного тестирования имеет from Source import
, который вызывает исходную лямбду для тестовых данных.Это когда Jenkins Pipeline видит env var и выходит из строя.
Кажется, я не могу найти способ обойти это, чтобы пройти модульные тесты.Можно ли как-нибудь успешно завершить тест, не добавляя переменную ACCOUNT_ID в переменную Jenkins 'env?