in provider-utils/awscloudformation/utils/video-staging.js [69:141]
function getVODEnvVars(context, props, resourceName) {
const { amplify } = context;
const currentEnvInfo = amplify.getEnvInfo().envName;
const targetDir = amplify.pathManager.getBackendDirPath();
const amplifyMeta = amplify.getProjectMeta();
const projectBucket = amplifyMeta.providers.awscloudformation.DeploymentBucketName;
let amplifyProjectDetails = amplify.getProjectDetails();
if (!((((amplifyProjectDetails.teamProviderInfo[currentEnvInfo].categories
|| {}).video
|| {})[resourceName]
|| {}).s3UUID)) {
let uuid;
if (props.shared.bucketInput) {
// Migrate to env setup
uuid = props.shared.bucketInput.split('-').pop();
} else {
uuid = Math.random().toString(36).substring(2, 8)
+ Math.random().toString(36).substring(2, 8);
}
amplify.saveEnvResourceParameters(context, 'video', resourceName, { s3UUID: uuid });
amplifyProjectDetails = amplify.getProjectDetails();
}
// Migration from old props to new props.
// (Removing bucket and bucket input/output to be stored in env)
if (props.shared.bucket) {
delete props.shared.bucket;
delete props.shared.bucketInput;
delete props.shared.bucketOutput;
fs.writeFileSync(`${targetDir}/video/${resourceName}/props.json`, JSON.stringify(props, null, 4));
}
let envVars = amplifyProjectDetails.teamProviderInfo[currentEnvInfo]
.categories.video[resourceName];
if (props.contentDeliveryNetwork && props.contentDeliveryNetwork.signedKey) {
if (props.contentDeliveryNetwork.publicKey) {
// Migrate to env CDN vars
const envSave = {
publicKey: props.contentDeliveryNetwork.publicKey,
rPublicName: props.contentDeliveryNetwork.rPublicName,
publicKeyName: props.contentDeliveryNetwork.publicKeyName,
secretPem: props.contentDeliveryNetwork.secretPem,
secretPemArn: props.contentDeliveryNetwork.secretPemArn,
};
amplify.saveEnvResourceParameters(context, 'video', resourceName, envSave);
amplifyProjectDetails = amplify.getProjectDetails();
envVars = amplifyProjectDetails.teamProviderInfo[currentEnvInfo]
.categories.video[resourceName];
delete props.contentDeliveryNetwork.publicKey;
delete props.contentDeliveryNetwork.rPublicName;
delete props.contentDeliveryNetwork.publicKeyName;
delete props.contentDeliveryNetwork.secretPem;
delete props.contentDeliveryNetwork.secretPemArn;
fs.writeFileSync(`${targetDir}/video/${resourceName}/props.json`, JSON.stringify(props, null, 4));
}
const cdnEnv = {
publicKey: envVars.publicKey,
rPublicName: envVars.rPublicName,
publicKeyName: envVars.publicKeyName,
secretPem: envVars.secretPem,
secretPemArn: envVars.secretPemArn,
};
Object.assign(props.contentDeliveryNetwork, cdnEnv);
}
props.env = {
bucket: projectBucket,
bucketInput: `${resourceName.toLowerCase()}-${currentEnvInfo}-input-${envVars.s3UUID}`.slice(0, 63),
bucketOutput: `${resourceName.toLowerCase()}-${currentEnvInfo}-output-${envVars.s3UUID}`.slice(0, 63),
};
return props;
}