Insère une image d'image de conteneur dans un fichier JSON de définition de tâche Amazon ECS, créant un nouveau fichier de définition de tâche.
Table des matières
Si un fichier de définition de tâche est prévu, qui a la priorité sur toute autre option pour récupérer la définition de la tâche. Si le fichier de définition de la tâche et la définition de la tâche sont fournis, un avertissement qui a été fourni sera retourné et le fichier de définition de la tâche sera utilisé. Si aucun fichier de définition de tâche, définition de la tâche ARN et la famille de définition de tâche ne sont fournis, une erreur sera lancée. (Au moins une option doit être fournie)
Pour insérer l'image URI amazon/amazon-ecs-sample:latest comme image du conteneur web dans le fichier de définition des tâches, puis déployez le fichier de définition de la tâche éditée à ECS:
- name : Render Amazon ECS task definition
id : render-web-container
uses : aws-actions/amazon-ecs-render-task-definition@v1
with :
task-definition : task-definition.json
task-definition-arn : task-definition-arn
task-definition-family : task-definition-family-name
task-definition-revision : task-definition-revision
container-name : web
image : amazon/amazon-ecs-sample:latest
environment-variables : " LOG_LEVEL=info "
secrets : " SECRET_KEY=arn:aws:ssm:region:0123456789:parameter/secret "
- name : Deploy to Amazon ECS service
uses : aws-actions/amazon-ecs-deploy-task-definition@v2
with :
task-definition : ${{ steps.render-web-container.outputs.task-definition }}
service : my-service
cluster : my-cluster Si votre fichier de définition de tâche contient plusieurs conteneurs dans la section containerDefinitions qui nécessite des URI d'image mis à jour, chaîne plusieurs exécutions de cette action en utilisant la valeur de sortie de la première action pour l'entrée task-definition du second:
- name : Render Amazon ECS task definition for first container
id : render-web-container
uses : aws-actions/amazon-ecs-render-task-definition@v1
with :
task-definition : task-definition.json
container-name : web
image : amazon/amazon-ecs-sample-1:latest
environment-variables : |
LOG_LEVEL=info
ENVIRONMENT=prod
docker-labels : |
SERVICE=service
VERSION=version
secrets : |
SECRET_KEY=arn:aws:ssm:region:0123456789:parameter/secret
SECOND_SECRET_KEY=arn:aws:secretsmanager:us-east-1:0123456789:secret:secretName
- name : Modify Amazon ECS task definition with second container
id : render-app-container
uses : aws-actions/amazon-ecs-render-task-definition@v1
with :
task-definition : ${{ steps.render-web-container.outputs.task-definition }}
container-name : app
image : amazon/amazon-ecs-sample-2:latest
- name : Deploy to Amazon ECS service
uses : aws-actions/amazon-ecs-deploy-task-definition@v2
with :
task-definition : ${{ steps.render-app-container.outputs.task-definition }}
service : my-service
cluster : my-clusterUtilisez l'approche suivante pour configurer votre pilote de journal si nécessaire:
- name : Render Amazon ECS task definition
id : render-web-container
uses : aws-actions/amazon-ecs-render-task-definition@v1
with :
task-definition : task-definition.json
container-name : web
image : amazon/amazon-ecs-sample:latest
log-configuration-log-driver : awslogs
log-configuration-options : |
awslogs-create-group=true
awslogs-group=/ecs/web
awslogs-region=us-east-1
awslogs-stream-prefix=ecs
Voir Action.yml pour la documentation complète pour les entrées et sorties de cette action.
Ce code est mis à disposition sous la licence MIT.
Si vous souhaitez signaler un problème de sécurité potentiel dans ce projet, veuillez ne pas créer de problème GitHub. Au lieu de cela, veuillez suivre directement les instructions ici ou envoyer un e-mail AWS Security.