AppSpec sección de «recursos» (solo Amazon ECS y AWS Lambda despliegues) - AWS CodeDeploy

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AppSpec sección de «recursos» (solo Amazon ECS y AWS Lambda despliegues)

El contenido de la 'resources' sección del AppSpec archivo varía en función de la plataforma informática de la implementación. La 'resources' sección para una ECS implementación de Amazon contiene la definición de la ECS tarea de Amazon, el contenedor y el puerto para redirigir el tráfico a su conjunto de ECS tareas de Amazon actualizado y otra información opcional. La 'resources' sección de una AWS Lambda implementación contiene el nombre, el alias, la versión actual y la versión de destino de una función Lambda.

AppSpec sección de «recursos» para despliegues de AWS Lambda

La sección 'resources' especifica la función de Lambda que se va a implementar y tiene la siguiente estructura:

YAML:

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

"resources": [ { "name-of-function-to-deploy" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } } } ]

Cada propiedad se especifica con una cadena.

  • name: obligatorio. Es el nombre de la función de Lambda que se va a implementar.

  • alias: obligatorio. Es el nombre del alias de la función de Lambda.

  • currentversion: obligatorio. Es la versión de la función de Lambda a la que apunta actualmente el tráfico. Este valor debe ser un entero positivo válido.

  • targetversion: obligatorio. Es la versión de la función de Lambda a la que se va a desviar el tráfico. Este valor debe ser un entero positivo válido.

AppSpec sección de «recursos» para las ECS implementaciones de Amazon

La 'resources' sección especifica el ECS servicio de Amazon que se va a implementar y tiene la siguiente estructura:

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-arn" LoadBalancerInfo: ContainerName: "ecs-container-name" ContainerPort: "ecs-application-port" # Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED | DISABLED" CapacityProviderStrategy: - Base: integer CapacityProvider: "capacityProviderA" Weight: integer - Base: integer CapacityProvider: "capacityProviderB" Weight: integer

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "task-definition-arn", "LoadBalancerInfo": { "ContainerName": "ecs-container-name", "ContainerPort": "ecs-application-port" }, "PlatformVersion": "ecs-service-platform-version", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "ecs-subnet-1", "ecs-subnet-n" ], "SecurityGroups": [ "ecs-security-group-1", "ecs-security-group-n" ], "AssignPublicIp": "ENABLED | DISABLED" } }, "CapacityProviderStrategy": [ { "Base": integer, "CapacityProvider": "capacityProviderA", "Weight": integer }, { "Base": integer, "CapacityProvider": "capacityProviderB", "Weight": integer } ] } } } ]

Cada propiedad se especifica con una cadena excepto ContainerPort, que es un número.

  • TaskDefinition: obligatorio. Esta es la definición de tareas que debe implementar el ECS servicio de Amazon. Se especifica con la definición ARN de la tarea. El ARN formato esarn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Para obtener más información, consulte Nombres de recursos de Amazon (ARNs) y espacios de nombres AWS de servicios.

    nota

    Esta :task-definition-revision parte ARN es opcional. Si se omite, Amazon ECS utilizará la última ACTIVE revisión de la definición de la tarea.

  • ContainerName: obligatorio. Este es el nombre del ECS contenedor de Amazon que contiene tu ECS solicitud de Amazon. Debe ser un contenedor especificado en tu definición de ECS tarea de Amazon.

  • ContainerPort: obligatorio. Este es el puerto del contenedor al que se enrutará el tráfico.

  • PlatformVersion: opcional. La versión de plataforma de las tareas de Fargate en el servicio Amazon ECS desplegado. Para obtener más información, consulte Versiones de la plataforma de AWS Fargate. Si no se especifica, se utilizará LATEST de forma predeterminada.

  • NetworkConfiguration: opcional. En AwsvpcConfiguration, puede especificar lo siguiente. Para obtener más información, consulta AwsVpcConfigurationla APIreferencia de Amazon ECS Container Service.

    • Subnets: opcional. Una lista separada por comas de una o más subredes de tu servicio de Amazon. ECS

    • SecurityGroups: opcional. Una lista separada por comas de uno o varios grupos de seguridad en su Amazon Elastic Container Service.

    • AssignPublicIp: opcional. Cadena que especifica si la interfaz de red elástica de tu ECS servicio de Amazon recibe una dirección IP pública. Los valores válidos son ENABLED y DISABLED.

    nota

    Deben especificarse todos o ninguno de los ajustes de NetworkConfiguration. Por ejemplo, si desea especificar Subnets, también debe especificar SecurityGroups y AssignPublicIp. Si no se especifica ninguno, CodeDeploy utiliza la ECS configuración actual de la red Amazon.

  • CapacityProviderStrategy: opcional. Una lista de los proveedores de ECS capacidad de Amazon que quieres usar para tu implementación. Para obtener más información, consulte los proveedores de ECS capacidad de Amazon en la Guía para desarrolladores de Amazon Elastic Container Service. Puede especificar la siguiente configuración para cada proveedor de capacidad. Para obtener más información sobre estos ajustes, consulte AWS:ECS:: ServiceCapacityProviderStrategyItem en la Guía del AWS CloudFormation usuario

    • Base: opcional. El valor de base designa cuántas tareas, como mínimo, se ejecutarán en el proveedor de capacidad especificado. Solo un proveedor de capacidad en una estrategia de proveedor de capacidad puede tener una base definida. Si no se especifica ningún valor, se utiliza el valor predeterminado 0.

    • CapacityProvider: opcional. Nombre abreviado del proveedor de capacidad. Ejemplo: capacityProviderA

    • Weight: opcional.

      El valor peso designa el porcentaje relativo del número total de tareas lanzadas que debe utilizar el proveedor de capacidad especificado. El valor weight se tomará en cuenta luego de que el valor base se cumpla, en el caso de haber sido definido.

      Si no se especifica ningún valor, se utiliza el valor predeterminado 0. Cuando se especifican varios proveedores de capacidad dentro de una estrategia de provisión de capacidad, al menos uno de los proveedores de capacidad deberá tener un valor de peso superior a cero y los proveedores de capacidad con un peso de 0 no se utilizarán para asignar tareas. Si especifican varios proveedores de capacidad en una estrategia en la que todos tienen un peso de 0, se producirá un error en cualquiera de las acciones RunTask o CreateService que utilicen la estrategia de provisión de capacidad.

      Por ejemplo, si define una estrategia que contiene dos proveedores de capacidad y ambos tienen un peso de 1, cuando base se cumpla las tareas se dividirán uniformemente entre los dos proveedores de capacidad. Siguiendo la misma lógica, si especificas un peso de 1 para capacityProvider A y un peso de 4 para capacityProviderB, por cada tarea que se ejecute con capacityProviderA, cuatro tareas usarán capacityProviderB.