in marketplace/vm-solution/cloud_function.py [0:0]
def GenerateConfig(context):
"""Generate YAML resource configuration."""
function_name = 'processUpload'
source_archive_url = 'gs://%s/%s' % (context.properties['codeBucket'],
'datashare-toolkit-cloud-function.zip')
print(source_archive_url)
ingestion_bucket_name = context.properties['ingestionBucketName']
useWaiter = context.properties['useRuntimeConfigWaiter']
#cmd = "echo '%s' | base64 -d > /function/function.zip;" % (content.decode('ascii'))
cloud_function = {
'type': 'gcp-types/cloudfunctions-v1:projects.locations.functions',
'name': function_name,
'properties': {
'parent':
'/'.join([
'projects', context.env['project'], 'locations',
context.properties['location']
]),
'function':
function_name,
'sourceArchiveUrl':
source_archive_url,
'environmentVariables': {
'VERBOSE_MODE': 'true',
'ARCHIVE_FILES': 'false'},
'entryPoint':
context.properties['entryPoint'],
'eventTrigger': {
'eventType': 'providers/cloud.storage/eventTypes/object.change',
'resource': 'projects/' + context.env['project'] + '/buckets/' + ingestion_bucket_name # + context.env['project'] + '-cds-bucket'
},
'timeout':
context.properties['timeout'],
'availableMemoryMb':
context.properties['availableMemoryMb'],
'runtime':
context.properties['runtime']
}
}
if useWaiter:
waiterName = context.properties['waiterName']
cloud_function['metadata'] = {'dependsOn': [waiterName]}
resources = [cloud_function]
return {
'resources':
resources,
'outputs': [{
'name': 'sourceArchiveUrl',
'value': source_archive_url
}, {
'name': 'name',
'value': '$(ref.' + function_name + '.name)'
}]
}