in engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt [20:71]
override fun generate(entity: Application, context: GenerationContext): GenerationFactory.GenerationResult<StorageFactory.Output> {
val storageAccount = context.output.get(context.webapp, InfoFactory).storageAccount
val storageContainer = context.output.get(context.webapp, InfoFactory).staticStorageContainer
val zipArchiveRef = context.output.get(context.webapp, ZipArchiveFactory).artifactCompleteRef
val storageAccountSas = storage_account_sas("storage_account") {
connection_string = storageAccount::primary_connection_string.ref
https_only = true
expiry = "\${timeadd(timestamp(), \"17520h\")}"
resourceTypes {
service = true
container = true
`object` = true
}
services {
blob = true
queue = false
table = false
file = false
}
start = "\${timestamp()}"
permissions {
read = true
write = true
delete = true
list = true
add = true
create = true
update = false
process = false
}
}
val lambdas = context.schema.lambdas.all
val directory = lambdas.first().file.parentFile
val storageBlob = storage_blob("storage_blob") {
name = "azure-test-zip"
storage_account_name = storageAccount::name.ref
storage_container_name = storageContainer::name.ref
type = "Block"
access_tier = "Hot"
content_md5 = "\${$zipArchiveRef.output_md5}"
source = "${directory.parent}/result.zip"
depends_on = arrayOf(zipArchiveRef)
}
return GenerationFactory.GenerationResult(Output(storageBlob, storageAccountSas), storageAccountSas, storageBlob)
}