in functions/source/CfnCrossRegion/lambda_function.py [0:0]
def get_client(service, event, context):
role_arn = None
if 'RoleArn' in event['ResourceProperties']:
role_arn = event['ResourceProperties']['RoleArn']
region = context.invoked_function_arn.split(":")[3]
if "Region" in event["ResourceProperties"].keys():
region = event["ResourceProperties"]["Region"]
if event['RequestType'] == 'Update':
old_role = None
if 'RoleArn' in event['OldResourceProperties'].keys():
old_role = event['OldResourceProperties']['RoleArn']
if role_arn != old_role:
raise Exception("Changing the role ARN for stack updates is not supported")
old_region = context.invoked_function_arn.split(":")[3]
if "Region" in event['OldResourceProperties'].keys():
old_region = event['OldResourceProperties']['Region']
if region != old_region:
raise Exception("Changing the region for stack updates is not supported")
if role_arn:
sess = assume_role(Session(), role_arn, session_name="QuickStartCfnStack")
client = sess.create_client(service, region_name=region)
else:
client = boto3.client(service, region_name=region)
return client