const comicBookCharacter = ( first, last ) => {
const firstName = first
const lastName = last return {
realName: `${firstName} ${lastName}`
}
}const superPower = ( ref ) => {
let powers = [] return {
addPower: ( p ) => {
powers.push( p )
return ref
},
powers
}
}const utilityBelt = ( ref ) => {
let utilities = []
return {
addToBelt: ( p ) => {
utilities.push( p )
return ref
},
utilities
}
}const decorate = ( obj, factoryArray ) => {
const instances = factoryArray.map( f => f( obj ) )
return Object.assign( obj, …instances )
}let batman = comicBookCharacter( ‘Bruce’, ‘Wayne’ )console.log( batman.realName )decorate( batman, [ superPower, utilityBelt ] )batman
.addPower( ‘money’ )
.addToBelt( ‘something’ )
.addPower( ‘strength’)
.addToBelt( ‘batarang’ )console.log( batman.powers, batman.utilities )
error on this: fs . writeFile ( fileName , pdfBytes , err => { if ( err ) { console . log ( err . message ) reject ( err . message ) } else resolve ( fileName ) }) #1 It looks like when deployed into Cloud Run it also requires the extra permission "Service Account Token Creator" to run getSignedUrl . Locally for some reason this role is not required. #2 Only the directory /tmp is writable in Cloud Run. So, change the default write location to write into this directory. However, you have to be aware of 2 things: Cloud Run is stateless, that means when a new instance is created, the container start from scratch, with an empty /tmp directory /tmp directory is an in-memory file system. The maximum allowed memory on Cloud Run is 2Gb, your app memory footprint included. In addition of your file and Airflow, not sure that you will have a lot of space. A final remark. Cloud Run is active only when it...
Comments
Post a Comment