Skip to content

Commit 4d8315d

Browse files
Making deploy independent of get_user permission
The current implementation relies on get_user() to construct the correct role name. However, this requires an additional IAM permission which not every user may have. This change allows the user to specify the full "arn:aws:iam::{0}:role/{1}" in the role config so the permission is not required.
1 parent defa8b9 commit 4d8315d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

aws_lambda/aws_lambda.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,10 @@ def create_function(cfg, path_to_zip_file):
246246
aws_access_key_id = cfg.get('aws_access_key_id')
247247
aws_secret_access_key = cfg.get('aws_secret_access_key')
248248

249-
account_id = get_account_id(aws_access_key_id, aws_secret_access_key)
250-
role = get_role_name(account_id, cfg.get('role', 'lambda_basic_execution'))
249+
role = cfg.get('role', 'lambda_basic_execution')
250+
if not role.startswith('arn:aws:iam::'):
251+
account_id = get_account_id(aws_access_key_id, aws_secret_access_key)
252+
role = get_role_name(account_id, role)
251253

252254
client = get_client('lambda', aws_access_key_id, aws_secret_access_key,
253255
cfg.get('region'))
@@ -273,8 +275,10 @@ def update_function(cfg, path_to_zip_file):
273275
aws_access_key_id = cfg.get('aws_access_key_id')
274276
aws_secret_access_key = cfg.get('aws_secret_access_key')
275277

276-
account_id = get_account_id(aws_access_key_id, aws_secret_access_key)
277-
role = get_role_name(account_id, cfg.get('role', 'lambda_basic_execution'))
278+
role = cfg.get('role', 'lambda_basic_execution')
279+
if not role.startswith('arn:aws:iam::'):
280+
account_id = get_account_id(aws_access_key_id, aws_secret_access_key)
281+
role = get_role_name(account_id, role)
278282

279283
client = get_client('lambda', aws_access_key_id, aws_secret_access_key,
280284
cfg.get('region'))

0 commit comments

Comments
 (0)