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 distribuzione di Amazon ECS contiene la definizione delle attività di Amazon ECS, il contenitore e la porta per instradare il traffico verso il set di attività Amazon ECS 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 distribuzioni di Amazon ECS

La 'resources' sezione specifica il servizio Amazon ECS 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 servizio Amazon ECS. Viene specificata con l'ARN della definizione dell'attività. Il formato dell'ARN è arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Per ulteriori informazioni, consulta Amazon Resource Names (ARN) e AWS service namespace.

    Nota

    La :task-definition-revision parte dell'ARN è facoltativa. Se viene omesso, Amazon ECS utilizza l'ultima revisione ACTIVE della definizione dell'attività.

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

  • 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 nel 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 servizio Amazon ECS 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 impostazioni di rete correnti di Amazon ECS.

  • CapacityProviderStrategy: facoltativo. Un elenco di provider di capacità Amazon ECS che desideri utilizzare per la distribuzione. Per ulteriori informazioni, consulta i provider di capacità di Amazon ECS nella Amazon Elastic Container Service Developer Guide. Per ogni provider di capacità, puoi specificare le seguenti impostazioni. Per i dettagli su queste impostazioni, AWS::ECS::ServiceCapacityProviderStrategyItemconsulta la Guida AWS CloudFormation per l'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 un peso di 1 per capacityProviderA e un peso di 4 per capacityProviderB, per ogni attività che viene eseguita utilizzando capacityProviderA, quattro attività utilizzano capacityProviderB.