Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Ajouter un fichier de spécification d'application à une révision pour CodeDeploy
Cette rubrique explique comment ajouter un AppSpec fichier à votre déploiement. Il inclut également des modèles permettant de créer un AppSpec fichier pour un déploiement AWS Lambda et EC2/on-premises.
Rubriques
Ajouter un AppSpec fichier pour un déploiement Amazon ECS
Pour un déploiement sur une plateforme de calcul Amazon ECS :
-
Le AppSpec fichier indique la définition de tâche Amazon ECS utilisée pour le déploiement, le nom du conteneur et le mappage des ports utilisés pour acheminer le trafic, ainsi que les fonctions Lambda facultatives exécutées après les événements du cycle de vie du déploiement.
-
Une révision est identique à un AppSpec fichier.
-
Un AppSpec fichier peut être écrit en utilisant JSON ou YAML.
-
Un AppSpec fichier peut être enregistré sous forme de fichier texte ou saisi directement dans une console lorsque vous créez un déploiement. Pour plus d’informations, consultez Création d'un déploiement Amazon ECS Compute Platform (console).
Pour créer un AppSpec fichier
-
Copiez le modèle JSON ou YAML dans un éditeur de texte ou dans l' AppSpec éditeur de la console.
-
Modifiez le modèle selon les besoins.
-
Utilisez un validateur JSON ou YAML pour valider votre AppSpec fichier. Si vous utilisez l' AppSpecéditeur, le fichier est validé lorsque vous choisissez Créer un déploiement.
-
Enregistrez le fichier si vous utilisez un éditeur de texte. Si vous utilisez le AWS CLI pour créer votre déploiement, référencez le AppSpec fichier s'il se trouve sur votre disque dur ou dans un compartiment Amazon S3. Si vous utilisez la console, vous devez transférer votre AppSpec fichier vers Amazon S3.
Modèle de AppSpec fichier YAML pour un déploiement Amazon ECS avec instructions
Ce qui suit est un modèle de AppSpec fichier YAML pour un déploiement Amazon ECS avec toutes les options disponibles. Pour plus d'informations sur les événements de cycle de vie à utiliser dans la section hooks
, consultez AppSpec section « hooks » pour un ECS déploiement sur Amazon.
# This is an appspec.yml template file for use with an Amazon ECS deployment in CodeDeploy. # The lines in this template that start with the hashtag are # comments that can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section, you must specify the following: the Amazon ECS service, task definition name, # and the name and port of the load balancer to route traffic, # target version, and (optional) the current version of your AWS Lambda function. Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "" # Specify the ARN of your task definition (arn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number) LoadBalancerInfo: ContainerName: "" # Specify the name of your Amazon ECS application's container ContainerPort: "" # Specify the port for your container where traffic reroutes # Optional properties PlatformVersion: "" # Specify the version of your Amazon ECS Service NetworkConfiguration: AwsvpcConfiguration: Subnets: ["",""] # Specify one or more comma-separated subnets in your Amazon ECS service SecurityGroups: ["",""] # Specify one or more comma-separated security groups in your Amazon ECS service AssignPublicIp: "" # Specify "ENABLED" or "DISABLED" # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Hooks: # Hooks for Amazon ECS deployments are: - BeforeInstall: "" # Specify a Lambda function name or ARN - AfterInstall: "" # Specify a Lambda function name or ARN - AfterAllowTestTraffic: "" # Specify a Lambda function name or ARN - BeforeAllowTraffic: "" # Specify a Lambda function name or ARN - AfterAllowTraffic: "" # Specify a Lambda function name or ARN
AppSpec Fichier JSON pour un modèle de déploiement Amazon ECS
Ce qui suit est un modèle JSON pour un AppSpec fichier destiné à un déploiement Amazon ECS avec toutes les options disponibles. Pour obtenir des instructions sur les modèles, consultez les commentaires pour la version YAML dans la section précédente. Pour plus d'informations sur les événements de cycle de vie à utiliser dans la section hooks
, consultez AppSpec section « hooks » pour un ECS déploiement sur Amazon.
{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ], "Hooks": [ { "BeforeInstall": "" }, { "AfterInstall": "" }, { "AfterAllowTestTraffic": "" }, { "BeforeAllowTraffic": "" }, { "AfterAllowTraffic": "" } ] }
Ajouter un AppSpec fichier pour un déploiement AWS Lambda
Pour un déploiement sur une plateforme de calcul AWS Lambda :
-
Le AppSpec fichier contient des instructions sur les fonctions Lambda à déployer et à utiliser pour la validation du déploiement.
-
Une révision est identique à un AppSpec fichier.
-
Un AppSpec fichier peut être écrit en utilisant JSON ou YAML.
-
Un AppSpec fichier peut être enregistré sous forme de fichier texte ou saisi directement dans un AppSpec éditeur de console lors de la création d'un déploiement. Pour plus d’informations, consultez Création d'un déploiement de plateforme de calcul AWS Lambda (console).
Pour créer un AppSpec fichier :
-
Copiez le modèle JSON ou YAML dans un éditeur de texte ou dans l' AppSpec éditeur de la console.
-
Modifiez le modèle selon les besoins.
-
Utilisez un validateur JSON ou YAML pour valider votre AppSpec fichier. Si vous utilisez l' AppSpecéditeur, le fichier est validé lorsque vous choisissez Créer un déploiement.
-
Enregistrez le fichier si vous utilisez un éditeur de texte. Si vous utilisez le AWS CLI pour créer votre déploiement, référencez le AppSpec fichier s'il se trouve sur votre disque dur ou dans un compartiment Amazon S3. Si vous utilisez la console, vous devez transférer votre AppSpec fichier vers Amazon S3.
Modèle de AppSpec fichier YAML pour un AWS Lambda déploiement avec instructions
Pour plus d'informations sur les événements de cycle de vie à utiliser dans la section hooks, consultez AppSpec section « hooks » pour un déploiement AWS Lambda.
# This is an appspec.yml template file for use with an AWS Lambda deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section specify the name, alias, # target version, and (optional) the current version of your AWS Lambda function. Resources: - MyFunction: # Replace "MyFunction" with the name of your Lambda function Type: AWS::Lambda::Function Properties: Name: "" # Specify the name of your Lambda function Alias: "" # Specify the alias for your Lambda function CurrentVersion: "" # Specify the current version of your Lambda function TargetVersion: "" # Specify the version of your Lambda function to deploy # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Replace "LifeCycleEvent" with BeforeAllowTraffic # or AfterAllowTraffic. Hooks: - LifeCycleEvent: "" # Specify a Lambda validation function between double-quotes.
AppSpec Fichier JSON pour un modèle AWS Lambda de déploiement
Dans le modèle suivant, remplacez « MyFunction » par le nom de votre AWS Lambda fonction. Dans la section Hooks facultative, remplacez les événements du cycle de vie par BeforeAllowTraffic ou AfterAllowTraffic.
Pour plus d'informations sur les événements de cycle de vie à utiliser dans la section Hooks, consultez AppSpec section « hooks » pour un déploiement AWS Lambda.
{ "version": 0.0, "Resources": [{ "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "", "Alias": "", "CurrentVersion": "", "TargetVersion": "" } } }], "Hooks": [{ "LifeCycleEvent": "" } ] }
Ajouter un AppSpec fichier pour un déploiement EC2/sur site
Sans AppSpec fichier, vous CodeDeploy ne pouvez pas mapper les fichiers source de la révision de votre application à leurs destinations ou exécuter des scripts pour votre déploiement sur une plate-forme de calcul EC2/sur site.
Chaque révision ne doit contenir qu'un seul AppSpec fichier.
Pour ajouter un AppSpec fichier à une révision :
-
Copiez le modèle dans un éditeur de texte.
-
Modifiez le modèle selon les besoins.
-
Utilisez un validateur YAML pour vérifier la validité de votre AppSpec fichier.
-
Enregistrez le fichier sous le nom
appspec.yml
dans le répertoire racine de la révision. -
Exécutez l'une des commandes suivantes pour vérifier que vous avez bien placé votre AppSpec fichier dans le répertoire racine :
-
Pour Linux, macOS ou Unix :
find
/path/to/root/directory
-name appspec.ymlIl n'y aura aucune sortie si le AppSpec fichier n'y est pas trouvé.
-
Pour Windows :
dir
path\to\root\directory\
appspec.ymlUn message d'erreur Fichier introuvable s'affichera si le AppSpec fichier n'y est pas stocké.
-
-
Transférez la révision vers Amazon S3 ou GitHub.
Pour obtenir des instructions, veuillez consulter Transférer une révision CodeDeploy pour Amazon S3 (EC2déploiements /On-Premises uniquement).
AppSpec modèle de fichier pour un déploiement EC2/sur site avec instructions
Note
Les déploiements sur des instances Windows Server ne prennent pas en charge runas
cet élément. Si vous effectuez un déploiement sur des instances Windows Server, ne l'incluez pas dans votre AppSpec fichier.
# This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # Specify "os: linux" if this revision targets Amazon Linux, # Red Hat Enterprise Linux (RHEL), or Ubuntu Server # instances. # Specify "os: windows" if this revision targets Windows Server instances. # (You cannot specify both "os: linux" and "os: windows".) os: linux # os: windows # During the Install deployment lifecycle event (which occurs between the # BeforeInstall and AfterInstall events), copy the specified files # in "source" starting from the root of the revision's file bundle # to "destination" on the Amazon EC2 instance. # Specify multiple "source" and "destination" pairs if you want to copy # from multiple sources or to multiple destinations. # If you are not copying any files to the Amazon EC2 instance, then remove the # "files" section altogether. A blank or incomplete "files" section # may cause associated deployments to fail. files: - source: destination: - source: destination: # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify a "permissions" # section here that describes special permissions to apply to the files # in the "files" section as they are being copied over to # the Amazon EC2 instance. # For more information, see the documentation. # If you are deploying to Windows Server instances, # then remove the # "permissions" section altogether. A blank or incomplete "permissions" # section may cause associated deployments to fail. permissions: - object: pattern: except: owner: group: mode: acls: - context: user: type: range: type: - # If you are not running any commands on the Amazon EC2 instance, then remove # the "hooks" section altogether. A blank or incomplete "hooks" section # may cause associated deployments to fail. hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. # You can specify "timeout" as the number of seconds to wait until failing the deployment # if the specified scripts do not run within the specified time limit for the # specified event. For example, 900 seconds is 15 minutes. If not specified, # the default is 1800 seconds (30 minutes). # Note that the maximum amount of time that all scripts must finish executing # for each individual deployment lifecycle event is 3600 seconds (1 hour). # Otherwise, the deployment will stop and CodeDeploy will consider the deployment # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds # that are specified in "timeout" for all scripts in each individual deployment # lifecycle event does not exceed a combined 3600 seconds (1 hour). # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify "runas" in an event to # run as the specified user. For more information, see the documentation. # If you are deploying to Windows Server instances, # remove "runas" altogether. # If you do not want to run any commands during a particular deployment # lifecycle event, remove that event declaration altogether. Blank or # incomplete event declarations may cause associated deployments to fail. # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. ApplicationStop: - location: timeout: runas: - location: timeout: runas: # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". BeforeInstall: - location: timeout: runas: - location: timeout: runas: # During the AfterInstall deployment lifecycle event, run the commands # in the script specified in "location". AfterInstall: - location: timeout: runas: - location: timeout: runas: # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: - location: timeout: runas: - location: timeout: runas: # During the ValidateService deployment lifecycle event, run the commands # in the script specified in "location". ValidateService: - location: timeout: runas: - location: timeout: runas: