3
respostas

Problemas com Deploy_ECS no GitHub Actions

Olá pessoal!

Estou enfrentando um problema, ao verificar no GitHub Actions somente os arquivos Docker.yml e ECS.yml apresentaram problemas conforme a imagem abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tanto o Docker quando o ECS.yml apresentam o mesmo problema na task do "Deploy_ECS"

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Já verifiquei algumas aulas anteriores e mesmo assim não descobri o problema, até mesmo verificando as regras de segurança na amazon conforme o colega informou na dúvida anterior dessa mesma atividade, a imagem abaixo mostra o erro que aparece para mim no GitHub Actions:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ao copiar o "Nome de DNS" no painel da Amazon EC2 na parte de "Load Balancers" e colar no meu navegador eu obtenho seguinte resultado:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Mesmo colocando "/bruno" ou "/leo" conforme mencionado como teste para saber se a API esta no ar, ainda assim não consegui descobrir o problema.

Solicito ajuda para sanar este problema.

Aguardo retorno!

3 respostas

Olá, Rafael.

Tudo bem?

Pelo que vi nas mensagens de erro, parece que há algumas propriedades no arquivo de definição de tarefa do ECS que não são válidas. Além disso, o erro final indica que o recurso não está no estado esperado (Resource is not in the state servicesStable).

Aqui estão algumas sugestões para resolver o problema:

  1. Verifique as Propriedades da Definição de Tarefa: As mensagens de aviso indicam que algumas propriedades (status, registeredAt, registeredBy) não são válidas ao registrar uma nova definição de tarefa. Certifique-se de que seu arquivo ECS.yml não inclua essas propriedades. A definição de tarefa deve conter apenas propriedades válidas para registro.

  2. Estado do Serviço no ECS: O erro Resource is not in the state servicesStable sugere que o serviço ECS não está em um estado estável. Isso pode acontecer por várias razões, como problemas de configuração ou recursos insuficientes. Verifique o estado do serviço no console do ECS e veja se há alguma mensagem de erro ou alerta que possa fornecer mais detalhes.

  3. Verifique as Permissões: Certifique-se de que as permissões necessárias estão configuradas corretamente no IAM para permitir que o GitHub Actions interaja com o ECS. Isso inclui permissões para registrar definições de tarefa, criar serviços e atualizar serviços.

  4. Ajuste o Arquivo Docker.yml: Certifique-se de que o arquivo Docker.yml está configurado corretamente para construir e enviar a imagem do Docker para o registro. Verifique se as tags estão sendo aplicadas corretamente e se a imagem está sendo enviada para o repositório correto.

Aqui está um exemplo de como a definição de tarefa no ECS.yml pode ser simplificada:

version: 1
services:
  api:
    image: leonardosartorello/go_ci:${{github.run_number}}
    ports:
      - "8000:8000"
    environment:
      - NODE_ENV=production

E um exemplo de como o Docker.yml pode ser configurado:

name: CI/CD Pipeline

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Build Docker image
        run: docker build -t leonardosartorello/go_ci:${{github.run_number}} .

      - name: Push Docker image
        run: docker push leonardosartorello/go_ci:${{github.run_number}}
        env:
          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
          DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

Espero que essas sugestões ajudem a resolver o problema. Verifique os pontos mencionados e veja se há alguma configuração que precisa ser ajustada.

Qualquer dúvida manda aqui de novo. Bons estudos!

Olá Renan!

Verifiquei todos os itens que você mencionou, revisei as aulas, e simplesmente não estou conseguindo visualizar onde esta o meu problema, no painel da Amazon validei novamenta as configurações que realizei e mais uma vez não consegui visualizar o problema.

Segue abaixo o link do meu GitHub e da branch que estou realizando a atividade, caso tenha alguma anormalidade diferente do que foi passado durante o curso me avise por favor.

https://github.com/RafaelBSilvano/Curso_CI_3/tree/Amazon_ECS

Oii Rafael.

Eu estava comparando o seu arquivo "Docker.yml" com o do professor e encontrei algumas diferenças:

Possíveis problemas e correções:

1. Evento de disparo do workflow:

  • Professor: workflow_call
  • Seu arquivo: push em Amazon_ECS e workflow_call O seu arquivo pode estar se confundindo ao tentar utilizar dois triggers diferentes. Se o objetivo é usar apenas workflow_call, remova a configuração de push.

2. Tags do Docker: A tag usada no arquivo do professor é ${{github.ref_name}}, enquanto no seu é ${{github.run_number}}. Certifique-se de que isso está correto para o seu fluxo de trabalho.

Correção sugerida:

name: Docker

on:
  workflow_call:

jobs:

  docker:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: setup Docker Build
      uses: docker/setup-buildx-action@v2.0.0
      
    - name: Download a Build Artifact
      uses: actions/download-artifact@v3.0.0
      with:
        name: programa
      
    - name: Docker Login
      uses: docker/login-action@v2.0.0
      with:
        username: rafaelbsilvano
        password: ${{ secrets.PASSWORD_DOCKER_HUB }}
        
    - name: Build and push Docker images
      uses: docker/build-push-action@v3.0.0
      with:
        context: .
        file: ./Dockerfile
        push: true
        tags: rafaelbsilvano/go_ci:${{github.ref_name}}

Outra coisa:

Eu estava pesquisando sobre esse erro, e encontrei um erro semelhante, porém referente a falta de memória, no caso a pessoa resolveu aumentando a memória na definição da tarefa

Qualquer novidade, manda aqui por gentileza.