Comment télécharger un fichier dans mon modèle CloudFormation de compartiment AWS S3?
AWSTemplateFormatVersion: '2010-09-09'
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
BucketName: s3bucketuser
VersioningConfiguration:
Status: Enabled
Vous ne pouvez pas télécharger de fichiers via CloudFormation, ce n'est pas pris en charge car CFN n'a pas accès à votre système de fichiers local.
Ce que je fais d'habitude:
cloudformation
depuis AnsibleOutputs
exporte le nom du compartiments3_sync
dans la tâche suivante une fois le CFN terminé.J'espère que cela pourra aider :)
AWS fournit un exemple Macro qui peut vous aider, selon votre cas d'utilisation: https://github.com/awslabs/aws-cloudformation-templates/tree/a11722d/aws/services/ CloudFormation/MacrosExamples/S3Objects .
S3Objects
, qui permet d'utiliser Type: AWS::S3::Object
.Dans le exemple fourni, la propriété Body
permet de saisir du texte directement dans le modèle YAML ou JSON. Pour développer cela, on peut utiliser Fn :: Sub pour créer un fichier avec des paramètres ou des propriétés à partir d'autres ressources:
---
AWSTemplateFormatVersion: '2010-09-09'
Transform: S3Objects
Parameters:
ANameField:
Type: String
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
BucketName: s3bucketuser
VersioningConfiguration:
Status: Enabled
S3Object:
Type: AWS::S3::Object
Properties:
Target:
Bucket: !Ref Bucket
Key: README.md
ContentType: text/markdown
Body: !Sub |
# My text file
This is my text file for ${ANameField}.
The region is ${AWS::Region} and my account ID is ${AWS::AccountId}.
This file is in the ${S3Bucket} bucket. The bucket ARN is ${S3Bucket.Arn},
and its website endpoint is ${S3Bucket.WebsiteURL}