def createModelBootstraps()

in SubTemplates/IoT/Lambdas/provision_device/app.py [0:0]


def createModelBootstraps():
    model_bucket = '{}-per-vendor-bootstraps'.format(resourceTag)
    
    with open('artifacts/models.txt', 'r') as rows:
        s3Client.create_bucket(Bucket=model_bucket, CreateBucketConfiguration={'LocationConstraint': region})
        models = rows.read().splitlines()
        rootCert = urlopen(rootCertUrl)
        
        for model in models:
            #create certificates
            certificates = iotClient.create_keys_and_certificate(setAsActive=True)
            iotClient.attach_policy(policyName=bootstrapPolicyName,target=certificates['certificateArn'])
            mem_zip = BytesIO()
            
            with ZipFile(mem_zip, mode="w", compression=ZIP_DEFLATED) as archive:
                archive.writestr('bootstrap-certificate.pem.crt', certificates['certificatePem'])
                archive.writestr('bootstrap-private.pem.key', certificates['keyPair']['PrivateKey'])
                archive.writestr('root.ca.pem', rootCert.read())
            mem_zip.seek(0)
            s3Client.upload_fileobj(mem_zip, model_bucket,'{0}/{0}_bootstraps.zip'.format(model))