def _register_resource()

in migration/bring-your-own-s3-tables/bring_your_own_s3_table_bucket.py [0:0]


def _register_resource(lf_client, table_bucket_arn, iam_role_arn_lf_resource_register, execute_flag):
    s3_table_bucket_account_id = table_bucket_arn.split(':')[4]
    s3_table_bucket_region = table_bucket_arn.split(':')[3]
    if execute_flag:
        try:
            lf_client.register_resource(
                ResourceArn=f"arn:aws:s3tables:{s3_table_bucket_region}:{s3_table_bucket_account_id}:bucket/*",
                WithPrivilegedAccess=True,
                RoleArn=iam_role_arn_lf_resource_register
            )
            print(f"Successfully registered {table_bucket_arn} as LakeFormation resource\n")
        except ClientError as e:
            if e.response['Error']['Code'] == 'AlreadyExistsException':
                print(f"Resource {table_bucket_arn} already registered as LakeFormation resource with {iam_role_arn_lf_resource_register} as principal\n")
            else:
                raise e
    else:
        print(f"Skip registering {table_bucket_arn} as LakeFormation resource with {iam_role_arn_lf_resource_register} as principal, set --execute flag to True to do the actual update\n")