As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
CodePipeline referência de estrutura de tubulação
Por padrão, todo pipeline criado com êxito no AWS CodePipeline tem uma estrutura válida. No entanto, se um arquivo JSON for criado ou editado manualmente para criar ou atualizar um pipeline do AWS CLI, você poderá criar inadvertidamente uma estrutura inválida. A referência a seguir pode ajudar a entender melhor os requisitos da estrutura do pipeline e como solucionar problemas. Consulte as restrições em Cotas emAWSCodePipeline, que se aplicam a todos os pipelines.
Tópicos
Tipos de ação e provedores válidos em CodePipeline
O formato da estrutura de pipeline é usado para compilar ações e estágios em um pipeline. Um tipo de ação é composto por uma categoria de ação e um tipo de provedor.
Veja a seguir as categorias de ação válidas no CodePipeline:
-
Origem
-
Compilação
-
Teste
-
Implante
-
Aprovação
-
Invoke
Cada categoria de ação tem um conjunto designado de provedores. Cada provedor de ação, como o Amazon S3, tem um nome de provedorS3
, como, que deve ser usado noProvider
campo na categoria de ação em sua estrutura de pipeline.
Há três valores válidos para o campo Owner
na seção da categoria de ação na estrutura do pipeline: AWS
, ThirdParty
e Custom
.
Para localizar o nome do provedor e as informações do proprietário do provedor de ação, consulte Referência da estrutura da ação ou Número de artefatos de entrada e saída para cada tipo de ação.
Essa tabela lista os provedores válidos por tipo de ação.
nota
Para ações do Bitbucket ou do GitHub Enterprise Server, consulte o tópico de referência daCodeStarSourceConnection para ações do Bitbucket GitHub e do GitHub Enterprise Server ação. GitHub
Alguns tipos de ação CodePipeline estão disponíveis somente em determinadasAWS regiões. É possível que um tipo de ação esteja disponível em umaAWS região, mas umAWS provedor para esse tipo de ação não esteja disponível.
Para obter mais informações sobre cada provedor de ações, consulte Integrações aos tipos de ação do CodePipeline.
As seções a seguir fornecem exemplos para informações de provedores e propriedades de configuração para cada tipo de ação.
Requisitos de estrutura de estágios e pipelines no CodePipeline
Um pipeline com dois estágios tem a seguinte estrutura básica:
{ "roleArn": "
An IAM ARN for a service role, such as arn:aws:iam::80398EXAMPLE:role/CodePipeline_Service_Role
", "stages": [ { "name": "SourceStageName
", "actions": [ ... See Requisitos de estrutura de ação em CodePipeline ... ] }, { "name": "NextStageName
", "actions": [ ... See Requisitos de estrutura de ação em CodePipeline ... ] } ], "artifactStore": { "type": "S3", "location": "The name of the Amazon S3 bucket automatically generated for you the first time you create a pipeline using the console, such as codepipeline-us-east-2-1234567890, or any Amazon S3 bucket you provision for this purpose
" }, "name": "YourPipelineName
", "version": 1 }
A estrutura do pipeline tem estes requisitos:
-
Um pipeline deve ter pelo menos dois estágios.
-
O primeiro estágio de um pipeline deve ter pelo menos uma ação de origem. Só pode conter ações de origem.
-
Somente o primeiro estágio de um pipeline pode ter ações de origem.
-
Pelo menos um estágio em cada pipeline deve ter uma ação que não seja uma ação de origem.
-
Os nomes de todos os estágios de um pipeline devem ser exclusivos.
-
Os nomes dos palcos não podem ser editados no CodePipeline console. Se você editar o nome de um estágio usando a AWS CLI e o estágio tiver uma ação com um ou mais parâmetros secretos, como um token OAuth, o valor desses parâmetros secretos não será mantido. É necessário inserir manualmente o valor dos parâmetros (que são mascarados por quatro asteriscos no JSON devolvido pela AWS CLI) e incluí-los na estrutura JSON.
-
O
artifactStore
campo contém o tipo de compartimento de artefato e a localização de um pipeline com todas as ações na mesmaAWS região. Se você adicionar ações em uma região diferente do seu pipeline, oartifactStores
mapeamento será usado para listar o bucket de artefatos para cadaAWS região em que as ações são executadas. Ao criar ou editar um pipeline, é necessário ter um bucket de artefato na região do pipeline e ter um bucket de artefato por região em que planeja executar uma ação.O exemplo a seguir mostra a estrutura básica de um pipeline com ações entre regiões que usa o parâmetro
artifactStores
:"pipeline": { "name": "
YourPipelineName
", "roleArn": "CodePipeline_Service_Role
", "artifactStores": { "us-east-1": { "type": "S3", "location": "S3 artifact bucket name, such as codepipeline-us-east-1-1234567890
" }, "us-west-2": { "type": "S3", "location": "S3 artifact bucket name, such as codepipeline-us-west-2-1234567890
" } }, "stages": [ { ... -
Os campos de metadados de pipeline são diferentes da estrutura do pipeline e não podem ser editados. Quando você atualiza um pipeline, a data no campo de metadados
updated
é alterada automaticamente. -
Quando você edita ou atualiza um pipeline, o nome do pipeline não pode ser alterado.
nota
Se você deseja renomear um pipeline existente, pode usar o comando
get-pipeline
da CLI para criar um arquivo JSON que contenha a estrutura do pipeline. Depois, você pode usar o comandocreate-pipeline
da CLI para criar um pipeline com essa estrutura e dar a ele um novo nome.
O número de versão de um pipeline é gerado e atualizado automaticamente sempre que o pipeline é atualizado.
Requisitos de estrutura de ação em CodePipeline
Uma ação tem a seguinte estrutura de nível elevado:
[ { "inputArtifacts": [
An input artifact structure, if supported for the action category
], "name": "ActionName
", "region": "Region
", "namespace": "source_namespace", "actionTypeId": { "category": "An action category", "owner": "AWS", "version": "1" "provider": "A provider type for the action category
", }, "outputArtifacts": [An output artifact structure, if supported for the action category
], "configuration": {Configuration details appropriate to the provider type
}, "runOrder":A positive integer that indicates the run order within the stage
, } ]
Para obter uma lista de exemplos de detalhes de configuration
adequados para o tipo de provedor, consulte Detalhes de configuração por tipo de provedor.
A estrutura de ação tem estes requisitos:
-
Os nomes de todas as ações em um estágio devem ser exclusivos.
-
O artefato de entrada de uma ação deve corresponder exatamente ao artefato de saída declarado em uma ação anterior. Por exemplo, se uma ação anterior inclui a seguinte declaração:
"outputArtifacts": [ { "MyApp" } ],
e não há outros artefatos de saída, o artefato de entrada de uma ação seguinte deve ser:
"inputArtifacts": [ { "MyApp" } ],
Isso ocorre com todas as ações, não importa se estão no mesmo estágio ou em estágios seguintes. No entanto, o artefato de entrada não precisa ser a próxima ação na sequência rígida da ação que forneceu o artefato de saída. Ações em paralelo podem declarar pacotes de artefatos de saída diferentes, que, por sua vez, são usados por ações seguintes diferentes.
-
Os nomes dos artefatos de saída devem ser exclusivos em um pipeline. Por exemplo, um pipeline pode incluir uma ação que tenha um artefato de saída com o nome
"MyApp"
e outra ação que tenha um artefato de saída com o nome"MyBuiltApp"
. Mas um pipeline não pode incluir duas ações que tenham um artefato de saída com o nome"MyApp"
. -
As ações entre regiões usam o
Region
campo para designar aAWS região em que as ações serão criadas. OsAWS recursos criados para essa ação devem ser criados na mesmaregion
região da Não é possível criar ações entre regiões para os seguintes tipos de ação:-
Ações de origem
-
Ações por provedores de terceiros
-
Ações por provedores personalizados
-
-
As ações podem ser configuradas com variáveis. Use o campo
namespace
para definir as informações de namespace e de variáveis para as variáveis de execução. Para obter informações de referência sobre variáveis de execução e variáveis de saída de ação, consulte Variáveis. -
Para todos os tipos de ação atualmente suportados, a única cadeia de caracteres válida do proprietário é
AWS
ThirdParty
, ouCustom
. Para obter mais informações, consulte a Referência da API do CodePipeline . -
O valor
runOrder
padrão de uma ação é 1. O valor deve ser um inteiro positivo (número natural). Não é permitido usar frações, números decimais ou negativos ou o número zero. Para especificar uma sequência de ações em série, use o menor número para a primeira ação e os maiores números para cada uma das ações em sequência restantes. Para especificar ações paralelas, use o mesmo número inteiro para cada ação que deseja executar em paralelo. No console, você pode especificar uma sequência serial para uma ação escolhendo Adicionar grupo de ações no nível do estágio em que deseja que ela seja executada, ou você pode especificar uma sequência parallel escolhendo Adicionar ação. Grupo de ação se refere a uma ordem de execução de uma ou mais ações no mesmo nível.Por exemplo, se você deseja que três ações sejam executadas em sequência em um estágio, você daria o valor
runOrder
de 1 para a primeira ação, o valorrunOrder
de 2 para a segunda ação e o valorrunOrder
de 3 para a terceira ação. No entanto, se você deseja que a segunda ação e a terceira ação sejam executadas em paralelo, você daria o valorrunOrder
de 1 para a primeira ação e o valorrunOrder
de 2 para a segunda e a terceira.nota
A numeração das ações em série não precisa estar em uma sequência rígida. Por exemplo, se você tem três ações em uma sequência e decide remover a segunda ação, você não precisa numerar novamente o valor
runOrder
da terceira ação. Como o valorrunOrder
dessa ação (3) é superior ao valorrunOrder
da primeira ação (1), ele será executado em série após a primeira ação no estágio. -
Ao usar um bucket do Amazon S3 como local de implantação, você também especifica uma chave de objeto. Uma chave de objeto pode ser um nome de arquivo (objeto) ou uma combinação de um prefixo (caminho da pasta) e um nome de arquivo. Você pode usar variáveis para especificar o nome do local que deseja que o pipeline use. As ações de implantação do Amazon S3 são compatíveis com o uso das variáveis nas chaves de objeto do Amazon S3 a seguir.
Uso de variáveis no Amazon S3Variável Exemplo de entrada do console Saída datetime js-application/{datetime}.zip Timestamp UTC neste formato: <YYYY>-<MM>-DD>_<HH>-<MM>-<SS> Exemplo:
js-application/2019-01-10_07-39-57.zip
uuid js-application/{uuid}.zip O UUID é um identificador globalmente exclusivo com garantia de diferenciação de qualquer outro identificador. O UUID está neste formato (todos os dígitos no formato hexadecimal): <8 dígitos>-<4 dígitos>-4 dígitos>-<4 dígitos>-<12 dígitos> Exemplo:
js-application/54a60075-b96a-4bf3-9013-db3a9EXAMPLE.zip
-
Estas são as
actionTypeId
categorias válidas para CodePipeline:-
Source
-
Build
-
Approval
-
Deploy
-
Test
-
Invoke
Alguns tipos de provedores e opções de configuração são fornecidos aqui.
-
-
Os tipos válidos de provedor de uma categoria de ação dependem da categoria. Por exemplo, para um tipo de ação de origem, um tipo de provedor válido é
S3
,GitHub
,CodeCommit
ouAmazon ECR
. Esse exemplo mostra a estrutura para uma ação de origem com um provedorS3
:"actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3"},
-
Toda ação deve ter uma configuração válida de ação, que depende do tipo de provedor para a ação em questão. A tabela a seguir mostra os elementos de configuração de ação necessários para cada tipo de provedor válido:
Propriedades de configuração de ação para tipos de provedorNome do provedor Nome do provedor no tipo de ação Propriedades de configuração A propriedade é necessária? Amazon S3 (provedor de ações de implantação) Para obter mais informações, incluindo exemplos relacionados aos parâmetros de ação de implantação do Amazon S3, consulteAção de implantação do Amazon S3. Amazon S3 (provedor de ações de origem) Para obter mais informações, incluindo exemplos relacionados aos parâmetros de ação de origem do Amazon S3, consulteAção de origem do Amazon S3. Amazon ECR Para obter mais informações, incluindo exemplos relacionados aos parâmetros do Amazon ECR, consulteAmazon ECR. CodeCommit Para obter mais informações, incluindo exemplos relacionados aos CodeCommit parâmetros, consulteCodeCommit. GitHub Para obter mais informações, incluindo exemplos relacionados aos GitHub parâmetros, consulteGitHubreferência da estrutura de ação de origem da versão 1. AWS CloudFormation Para obter mais informações, incluindo exemplos relacionados a parâmetros do AWS CloudFormation, consulte AWS CloudFormation. CodeBuild Para obter mais descrições e exemplos relacionados aos CodeBuild parâmetros, consulteAWS CodeBuild. CodeDeploy Para obter mais descrições e exemplos relacionados aos CodeDeploy parâmetros, consulteAWS CodeDeploy. AWS Device Farm Para obter mais descrição e exemplos relacionados a parâmetros do AWS Device Farm, consulte AWS Device Farm. AWS Elastic Beanstalk ElasticBeanstalk
ApplicationName
Obrigatório EnvironmentName
Obrigatório AWS Lambda Para obter mais informações, incluindo exemplos relacionados a parâmetros do AWS Lambda, consulte AWS Lambda. AWS OpsWorks Stacks OpsWorks
Stack
Obrigatório Layer
Optional App
Obrigatório Amazon ECS Para obter mais descrições e exemplos relacionados aos parâmetros do Amazon ECS, consulteServiço Amazon Elastic Container. Amazon ECS e CodeDeploy (azul/verde) Para obter mais descrições e exemplos relacionados ao Amazon ECS e aos parâmetros CodeDeploy azul/verde, consulteAmazon Elastic Service Service Service Service Service ServiceCodeDeploy. Service Catalog ServiceCatalog
TemplateFilePath
Obrigatório ProductVersionName
Obrigatório ProductType
Obrigatório ProductVersionDescription
Optional ProductId
Obrigatório Alexa Skills Kit AlexaSkillsKit
ClientId
Obrigatório ClientSecret
Obrigatório RefreshToken
Obrigatório SkillId
Obrigatório Jenkins O nome da ação que você forneceu no CodePipeline Plugin para Jenkins (por exemplo, MyJenkinsProviderName
)ProjectName
Obrigatório Aprovação manual Manual
CustomData
Optional ExternalEntityLink
Optional NotificationArn
Optional
Tópicos
Número de artefatos de entrada e saída para cada tipo de ação
Dependendo do tipo de ação, você poderá ter o seguinte número de artefatos de entrada e de saída:
Limitações dos tipos de ação dos artefatos | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Proprietário | Tipo de ação | Provedor | Número válido de artefatos de entrada | Número válido de artefatos de saída | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Origem | Amazon S3 | 0 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Origem | CodeCommit | 0 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Origem | Amazon ECR | 0 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ThirdParty |
Origem | GitHub | 0 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Compilação | CodeBuild | 1 – 5 | 0 – 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Teste | CodeBuild | 1 – 5 | 0 – 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Teste | AWS Device Farm | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Aprovação | Manual | 0 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | Amazon S3 | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | AWS CloudFormation | 0 – 10 | 0 – 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | CodeDeploy | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | AWS Elastic Beanstalk | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | AWS OpsWorks Stacks | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | Amazon ECS | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Implante | Service Catalog | 1 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS |
Invoke | AWS Lambda | 0 – 5 | 0 – 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ThirdParty |
Implante | Alexa Skills Kit | 1 – 2 | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom |
Compilação | Jenkins | 0 – 5 | 0 – 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom |
Teste | Jenkins | 0 – 5 | 0 – 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom |
Qualquer categoria compatível | Conforme especificado na ação personalizada | 0 – 5 | 0 – 5 |
Configurações padrão para o PollForSourceChanges parâmetro
O padrão do parâmetro PollForSourceChanges
é determinado pelo método usado para criar o pipeline, conforme descrito na tabela a seguir. Em muitos casos, o parâmetro PollForSourceChanges
é padronizado como verdadeiro e deve ser desativado.
Quando o parâmetro PollForSourceChanges
for padronizado como verdadeiro, faça o seguinte:
-
Adicione o parâmetro
PollForSourceChanges
ao arquivo JSON ou ao modelo do AWS CloudFormation. -
Crie recursos de detecção de alterações (regra deCloudWatch eventos, conforme aplicável).
-
Defina o parâmetro
PollForSourceChanges
para false.nota
Se você criar uma regra de CloudWatch eventos ou webhook, deverá definir o parâmetro como false para evitar acionar o pipeline mais de uma vez.
O
PollForSourceChanges
parâmetro não é usado para ações de origem do Amazon ECR.
-
PollForSourceChanges padrões de parâmetros
Origem Método de criação Exemplo de saída da estrutura JSON de "configuração" CodeCommit O pipeline é criado com o console (e recursos de detecção de alterações são criados pelo console). O parâmetro é exibido na saída da estrutura de pipeline e assume false
como padrão.BranchName": "main", "PollForSourceChanges": "false", "RepositoryName": "my-repo"
O pipeline é criado com a CLI ouAWS CloudFormation, e o PollForSourceChanges
parâmetro não é exibido na saída JSON, mas é definido comotrue
.²BranchName": "main", "RepositoryName": "my-repo"
Amazon S3 O pipeline é criado com o console (e recursos de detecção de alterações são criados pelo console). O parâmetro é exibido na saída da estrutura de pipeline e assume false
como padrão."S3Bucket": "my-bucket", "S3ObjectKey": "object.zip", "PollForSourceChanges": "false"
O pipeline é criado com a CLI ouAWS CloudFormation, e o PollForSourceChanges
parâmetro não é exibido na saída JSON, mas é definido comotrue
.²"S3Bucket": "my-bucket", "S3ObjectKey": "object.zip"
GitHub O pipeline é criado com o console (e recursos de detecção de alterações são criados pelo console). O parâmetro é exibido na saída da estrutura de pipeline e assume false
como padrão."Owner": "
MyGitHubAccountName
", "Repo": "MyGitHubRepositoryName
" "PollForSourceChanges": "false", "Branch": "main
" "OAuthToken": "****
"O pipeline é criado com a CLI ouAWS CloudFormation, e o PollForSourceChanges
parâmetro não é exibido na saída JSON, mas é definido comotrue
.²"Owner": "
MyGitHubAccountName
", "Repo": "MyGitHubRepositoryName
", "Branch": "main
", "OAuthToken": "****
"² Se
PollForSourceChanges
tiver sido adicionado em algum ponto à estrutura JSON ou aoAWS CloudFormation modelo, ele será exibido conforme mostrado:"PollForSourceChanges": "true",
³ Para obter informações sobre os recursos de detecção de alterações que se aplicam a cada provedor de origem, consulte Métodos de detecção de alterações.
Detalhes de configuração por tipo de provedor
Essa seção lista parâmetros de configuration
válidos para cada provedor de ações.
O exemplo a seguir mostra uma configuração válida para uma ação de implantação que usa o Service Catalog, para um pipeline que foi criado no console sem um arquivo de configuração separado:
"configuration": { "TemplateFilePath": "S3_template.json", "ProductVersionName": "devops S3 v2", "ProductType": "CLOUD_FORMATION_TEMPLATE", "ProductVersionDescription": "Product version description", "ProductId": "prod-example123456" }
O exemplo a seguir mostra uma configuração válida para uma ação de implantação que usa o Service Catalog, para um pipeline que foi criado no console com um arquivo desample_config.json
configuração separado:
"configuration": { "ConfigurationFilePath": "sample_config.json", "ProductId": "prod-example123456" }
O exemplo a seguir mostra uma configuração válida para uma ação de implantação que usa o Alexa Skills Kit:
"configuration": { "ClientId": "amzn1.application-oa2-client.aadEXAMPLE", "ClientSecret": "****", "RefreshToken": "****", "SkillId": "amzn1.ask.skill.22649d8f-0451-4b4b-9ed9-bfb6cEXAMPLE" }
O exemplo a seguir mostra uma configuração válida para uma aprovação manual:
"configuration": { "CustomData": "Comments on the manual approval", "ExternalEntityLink": "http://my-url.com", "NotificationArn": "arn:aws:sns:us-west-2:12345EXAMPLE:Notification" }