es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Dónde se encuentra el ActionType para implementaciones de AWS Elastic Beanstalk?

Estoy creando un AWS CodePipeline a través de Terraform, pero estoy atascado en la Etapa de Implementación.
Me gustaría implementar mi aplicación en AWS Elastic Beanstalk, pero no puedo encontrar el ActionType correcto aquí.

¿Cuál es el proveedor y los parámetros de configuración necesarios para una implementación de Beanstalk?

stage {
    name = "Deploy"

    action {
      category         = "Deploy"
      name             = "Deploy"
      output_artifacts = []
      owner            = "AWS"
      provider         = var.deploy_provider
      run_order        = 1
      version          = "1"

      configuration = {}
}

Estoy seguro de que existe, porque puedo configurarlo manualmente a través de la web:

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para implementar una aplicación en AWS Elastic Beanstalk como parte de un AWS CodePipeline creado con Terraform, debes usar el recurso aws_codepipeline y configurar un recurso aws_codepipeline_action dentro de la etapa de “despliegue” de la siguiente manera:

    resource "aws_codepipeline_action" "deploy_to_beanstalk" {
      name          = "DeployToBeanstalk"
      category      = "Deploy"
      provider      = "ElasticBeanstalk"
      version       = "1"
      input_artifacts = [
        aws_codepipeline_artifact.build_output.id
      ]
      configuration = {
        ApplicationName = var.beanstalk_app_name
        EnvironmentName = var.beanstalk_env_name
      }
      role_arn      = "arn:aws:iam::<your-account-id>:role/<your-iam-role>"
    }
    
    resource "aws_codepipeline" "example" {
      name     = "example"
      role_arn = "arn:aws:iam::<your-account-id>:role/<your-iam-role>"
    
      artifact_store {
        location = "example-bucket"
        type     = "S3"
      }
    
      stage {
        name = "Source"
    
        action {
          name            = "Source"
          category        = "Source"
          owner           = "ThirdParty"
          provider        = "GitHub"
          version         = "1"
          output_artifacts = ["source_output"]
    
          configuration = {
            Owner               = var.github_owner
            Repo                = var.github_repo
            Branch              = var.branch
            OAuthToken          = var.github_token
            PollForSourceChanges = var.poll_for_source_changes
          }
        }
      }
    
      stage {
        name = "Build"
    
        action {
          name            = "Build"
          category        = "Build"
          owner           = "AWS"
          provider        = "CodeBuild"
          version         = "1"
          input_artifacts = ["source_output"]
          output_artifacts = ["build_output"]
    
          configuration = {
            ProjectName = var.codebuild_project_name
          }
        }
      }
    
      stage {
        name = "Deploy"
    
        action {
          name             = "Deploy"
          category         = "Deploy"
          owner            = "AWS"
          provider         = var.deploy_provider
          version          = "1"
          input_artifacts  = ["build_output"]
          output_artifacts = []
          run_order        = 1
    
          configuration = {
            ApplicationName = var.beanstalk_app_name
            EnvironmentName = var.beanstalk_env_name
          }
        }
      }
    }
    

    En este ejemplo, se utilizan los recursos aws_codepipeline y aws_codepipeline_action para configurar la tubería y la acción de implementación, respectivamente. La acción de implementación se especifica con el proveedor (provider) establecido en “ElasticBeanstalk” y los parámetros de configuration requeridos se suministran como un mapa.

    Los recursos aws_codepipeline_artifact se utilizan para especificar los artefactos de entrada y salida utilizados por las etapas de la tubería. El parámetro role_arn identifica el rol de IAM que AWS CodePipeline asume al llamar a los recursos de AWS utilizados en la tubería.

    Asegúrate de conceder los permisos adecuados al rol de la tubería para permitir que se implemente en Elastic Beanstalk, así como para acceder a cualquier otro recurso de la tubería.

Comments are closed.