I have a template I am trying to deploy but fails on the second step when attempting to create/update the cloudformation stack. I get the following error: ##[error]Error: Error uploading template file: Error: EISDIR: illegal operation on a directory, read
. Seems obvious it cannot read from the S3 bucket and prefix, however, I have tried numerous iterations and still cannot get the stack to create. Basically, looking for how to create a cloudformation template by reading from s3Prefix. I know my parameters are working because the cloudformation file gets uploaded successfully to s3 without an issue.
I have tried the following for the s3ObjectKey
:
${{ parameters.stackTargetFolder }}/${{ parameters.templateName }}
${{ parameters.stackTargetFolder }}${{ parameters.templateName }}
${{ parameters.templateName }}
Here is my template:
parameters:
credentials: ''
stackRegion: ''
stackName: ''
stackBucket: ''
stackTargetFolder: ''
stackSourceFolder: ''
templateName: ''
changeSetName: ''
steps:
- task: S3Upload@1
inputs:
awsCredentials: ${{ parameters.credentials }}
regionName: ${{ parameters.stackRegion }}
bucketName: ${{ parameters.stackBucket }}
sourceFolder: ${{ parameters.stackSourceFolder}}
globExpressions: '**'
targetFolder: ${{ parameters.stackTargetFolder }}
createBucket: true
- task: CloudformationCreateOrUpdateStack@1
displayName: 'Create/Update Stack'
inputs:
awsCredentials: ${{ parameters.credentials }}
region: ${{ parameters.stackRegion }}
stackName: ${{ parameters.stackName }}
useChangeSet: true
s3BucketName: ${{ parameters.stackBucket }}
s3ObjectKey: ${{ parameters.templateName }}
changeSetName: ${{ parameters.changeSetName }}
captureStackOutputs: asVariables
captureAsSecuredVars: false