AppSpec sezione «risorse» (solo Amazon ECS e AWS Lambda distribuzioni) - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AppSpec sezione «risorse» (solo Amazon ECS e AWS Lambda distribuzioni)

Il contenuto nella 'resources' sezione del AppSpec file varia a seconda della piattaforma di elaborazione della distribuzione. La 'resources' sezione relativa a una ECS distribuzione Amazon contiene la definizione dell'ECSattività Amazon, il contenitore e la porta per instradare il traffico verso il set di ECS attività Amazon aggiornato e altre informazioni opzionali. La 'resources' sezione relativa a una AWS Lambda distribuzione contiene il nome, l'alias, la versione corrente e la versione di destinazione di una funzione Lambda.

AppSpec sezione «risorse» per le implementazioni AWS Lambda

La 'resources' sezione specifica la funzione Lambda da distribuire e ha la seguente struttura:

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" } } } ]

Ogni proprietà viene specificata con una stringa.

  • name: obbligatorio Questo è il nome della funzione Lambda da distribuire.

  • alias: obbligatorio Questo è il nome dell'alias della funzione Lambda.

  • currentversion: obbligatorio Questa è la versione della funzione Lambda a cui punta attualmente il traffico. Questo valore deve essere un numero intero positivo valido.

  • targetversion: obbligatorio Questa è la versione della funzione Lambda a cui viene spostato il traffico. Questo valore deve essere un numero intero positivo valido.

AppSpec sezione «risorse» per le ECS implementazioni di Amazon

La 'resources' sezione specifica il ECS servizio Amazon da distribuire e ha la seguente struttura:

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 } ] } } } ]

Ogni proprietà è specificata con una stringa ad eccezione diContainerPort, che è un numero.

  • TaskDefinition: obbligatorio Questa è la definizione dell'attività da distribuire per il ECS servizio Amazon. Viene specificata con la definizione ARN dell'attività. Il ARN formato èarn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Per ulteriori informazioni, consulta Amazon Resource Names (ARNs) e AWS service namespace.

    Nota

    La :task-definition-revision parte di è facoltativa. ARN Se viene omesso, Amazon ECS utilizza la ACTIVE revisione più recente della definizione dell'attività.

  • ContainerName: obbligatorio Questo è il nome del ECS contenitore Amazon che contiene la tua ECS applicazione Amazon. Deve essere un contenitore specificato nella definizione dell'ECSattività Amazon.

  • ContainerPort: obbligatorio Questa è la porta del container verso cui verrà indirizzato il traffico.

  • PlatformVersion: facoltativo. La versione della piattaforma delle attività Fargate nel servizio Amazon ECS distribuito. Per ulteriori informazioni, consulta Versioni della piattaforma AWS Fargate. Se non specificato, LATEST viene utilizzato per impostazione predefinita.

  • NetworkConfiguration: facoltativo. In AwsvpcConfiguration, è possibile specificare le forme seguenti: Per ulteriori informazioni, consulta AwsVpcConfigurationAmazon ECS Container Service API Reference.

    • Subnets: facoltativo. Un elenco separato da virgole di una o più sottoreti del tuo servizio Amazon. ECS

    • SecurityGroups: facoltativo. Un elenco separato da virgole di uno o più gruppi di sicurezza nel tuo Amazon Elastic Container Service.

    • AssignPublicIp: facoltativo. Una stringa che specifica se l'interfaccia di rete elastica del ECS servizio Amazon riceve un indirizzo IP pubblico. I valori validi sono ENABLED e DISABLED.

    Nota

    È necessario specificare tutte o nessuna delle impostazioni in NetworkConfiguration. Ad esempio, se si desidera specificare Subnets, è necessario specificare anche SecurityGroups e AssignPublicIp. Se non ne viene specificata nessuna, CodeDeploy utilizza le ECS impostazioni di rete correnti di Amazon.

  • CapacityProviderStrategy: facoltativo. Un elenco di fornitori di ECS capacità Amazon che desideri utilizzare per la distribuzione. Per ulteriori informazioni, consulta Amazon ECS Capacity Provider nella Amazon Elastic Container Service Developer Guide. Per ogni provider di capacità, puoi specificare le seguenti impostazioni. Per i dettagli su queste impostazioni, vedere AWS::ECS: ServiceCapacityProviderStrategyItem nella Guida per l'AWS CloudFormation utente

    • Base: facoltativo. Il valore di base indica il numero minimo di attività da eseguire nel provider di capacità specificato. Solo un provider di capacità in una strategia di provider di capacità può avere una base definita. Se non viene specificato alcun valore, sarà utilizzato il valore predefinito 0.

    • CapacityProvider: facoltativo. Nome breve o completo del provider di capacità. Esempio: capacityProviderA

    • Weight: facoltativo.

      Il valore peso indica la percentuale relativa del numero totale di attività avviate che devono utilizzare il provider di capacità specificato. Il valore weight viene preso in considerazione dopo che è stato soddisfatto il valore base, se definito.

      Se non viene specificato alcun valore weight, sarà utilizzato il valore predefinito 0. Quando più provider di capacità sono specificati nell'ambito di una strategia di provider di capacità, almeno uno dei provider deve avere un valore di peso superiore a zero e qualsiasi provider di capacità con un peso pari a 0 non sarà utilizzato per svolgere attività. Se specifichi più provider di capacità in una strategia tutti con un peso di 0, qualsiasi operazione RunTask o CreateService che utilizza la strategia del provider di capacità avrà esito negativo.

      Uno scenario di esempio di utilizzo dei pesi è la definizione di una strategia contenente due provider di capacità, ognuno con un peso pari a 1, quindi una volta soddisfatto il base, le attività saranno suddivise in maniera equa tra i due provider. Utilizzando la stessa logica, se si specifica capacityProviderun peso 1 per A e un peso 4 per capacityProviderB, per ogni attività eseguita utilizzando capacityProviderA, quattro attività utilizzeranno capacityProviderB.