Em 31 de julho de 2024, a Amazon Web Services (AWS) interromperá o suporte para criação e visualização AWS CodeStar de projetos. Depois de 31 de julho de 2024, você não poderá mais acessar o AWS CodeStar console nem criar novos projetos. No entanto, os AWS recursos criados por AWS CodeStar, incluindo seus repositórios de origem, pipelines e compilações, não serão afetados por essa alteração e continuarão funcionando. AWS CodeStar As conexões e AWS CodeStar notificações não serão afetadas por essa descontinuação.
Se você deseja monitorar o trabalho, desenvolver código e criar, testar e implantar seus aplicativos, a Amazon CodeCatalyst fornece um processo de introdução simplificado e funcionalidades adicionais para gerenciar seus projetos de software. Saiba mais sobre a funcionalidade
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á.
Tutorial: Criação e gerenciamento de um projeto com tecnologia sem servidor no AWS CodeStar
Nesse tutorial, você usa o AWS CodeStar para criar um projeto que use o AWS Serverless Application Model (AWS SAM) para criar e gerenciar recursos da AWS para um serviço da Web hospedado no AWS Lambda.
O AWS CodeStar usa o AWS SAM, que conta com o AWS CloudFormation, para oferecer uma maneira simplificada de criar e gerenciar os recursos suportados da AWS, incluindo as APIs do Amazon API Gateway, as funções do AWS Lambda e as tabelas do Amazon DynamoDB. (Esse projeto não usa nenhuma tabela do Amazon DynamoDB.)
Para obter mais informações, consulte Modelo de aplicação de tecnologia sem servidor do AWS (AWS SAM)
Pré-requisito: concluir as etapas em Configuração AWS CodeStar.
nota
A conta da AWS pode ser cobrada pelos custos relacionados a este tutorial, inclusive os custos dos serviços da AWS usados pelo AWS CodeStar. Para obter mais informações, consulte Preços do AWS CodeStar
Tópicos
- Visão geral
- Etapa 1: Criar o projeto
- Etapa 2: Explorar os recursos do projeto
- Etapa 3: Testar o serviço da web
- Etapa 4: Configurar sua estação de trabalho local para editar o código do projeto
- Etapa 5: Adicionar lógica ao serviço da web
- Etapa 6: Testar o serviço da web aprimorado
- Etapa 7: Adicionar um teste de unidade ao serviço da web
- Etapa 8: Visualizar os resultados do teste de unidade
- Etapa 9: Limpeza
- Próximas etapas
Visão geral
Neste tutorial, você:
-
Usa o AWS CodeStar para criar um projeto que use o AWS SAM para criar e implantar um serviço Web baseado em Python. Esse serviço da Web está hospedado no AWS Lambda e pode ser acessado por meio do Amazon API Gateway.
-
Explore os recursos principais do projeto, que incluem:
-
O repositório do AWS CodeCommit no qual o código-fonte do projeto está armazenado. Esse código-fonte inclui a lógica do serviço Web e define os recursos relacionados da AWS.
-
O pipeline do AWS CodePipeline que automatiza a criação do código-fonte. Esse pipeline usa o AWS SAM para criar e implantar uma função no AWS Lambda, criar uma API relacionada no Amazon API Gateway e conectar a API à função.
-
A função que é implantada no AWS Lambda.
-
A API criada no Amazon API Gateway.
-
-
Teste o serviço Web para confirmar que o AWS CodeStar criou e implantou o serviço Web conforme o esperado.
-
Configure sua estação de trabalho local para trabalhar com o código-fonte do projeto.
-
Altere o código-fonte do projeto usando sua estação de trabalho local. Quando você adiciona uma função ao projeto e, em seguida, envia as suas alterações para o código-fonte, o AWS CodeStar recompila e reimplanta o serviço da web.
-
Teste o serviço da web novamente para confirmar que o AWS CodeStar o recriou e o reimplantou conforme o esperado.
-
Escreva um teste de unidade usando sua estação de trabalho local para substituir alguns de seus testes manuais por um teste automatizado. Quando você envia o teste de unidade, o AWS CodeStar recompila e reimplanta o serviço da web e executa o teste de unidade.
-
Visualize os resultados dos testes de unidade.
-
Limpe o projeto. Essa etapa ajuda a evitar cobranças da conta da AWS os custos relacionados a esse tutorial.
Etapa 1: Criar o projeto
Nesta etapa, use o console do AWS CodeStar para criar um projeto.
-
Faça login no AWS Management Console e então abra o console do AWS CodeStar em https://console.aws.amazon.com/codestar/
. nota
Você deve fazer login no AWS Management Console usando as credenciais associadas ao usuário do IAM criado ou identificado em Configuração AWS CodeStar. Esse usuário deve ter a política gerenciada
AWSCodeStarFullAccess
anexada. -
Escolha a região da AWS onde você deseja criar o projeto e seus recursos.
Para obter informações sobre as regiões da AWS onde o AWS CodeStar está disponível, consulte Regiões e endpoints na Referência geral da AWS.
-
Escolha Create project (Criar projeto).
-
Na página Choose a project template (Escolher um modelo de projeto):
-
Em Tipo de aplicação, selecione Serviço de web.
-
Em Linguagem de programação, selecione Python.
-
Em Serviço do AWS, selecione AWS Lambda.
-
-
Escolha a caixa que contém suas seleções. Escolha Next (Próximo).
-
Em Project name (Nome do projeto), digite o nome do projeto (por exemplo,
My SAM Project
). Se você usar um nome diferente do exemplo, certifique-se de usá-lo ao longo de todo este tutorial.Em Project ID (ID do projeto), o AWS CodeStar escolhe um identificador relacionado para esse projeto (por exemplo, my-sam-project). Se vir outro ID de projeto, certifique-se de usá-lo durante todo este tutorial.
Deixe AWS CodeCommit selecionado e não altere o valor Repository name (Nome do repositório).
-
Escolha Next (Próximo).
-
Revise suas configurações e escolha Criar projeto.
Se essa for a primeira vez que você usa o AWS CodeStar nessa região do AWS, em Nome de exibição e E-mail, digite o nome de exibição e o endereço de e-mail que o AWS CodeStar deverá usar para o usuário do IAM. Escolha Next (Próximo).
-
Aguarde enquanto o AWS CodeStar cria o projeto. Isso pode demorar vários minutos. Não continue até ver o banner provisionado do projeto ao atualizar.
Etapa 2: Explorar os recursos do projeto
Nesta etapa, você explora quatro dos recursos da AWS para entender como o projeto funciona:
-
O repositório do AWS CodeCommit no qual o código-fonte do projeto está armazenado. O AWS CodeStar dá ao repositório o nome my-sam-project, em que my-sam-project é o nome do projeto.
-
O pipeline do AWS CodePipeline que usa o CodeBuild e o AWS SAM para automatizar a criação e a implantação da função do Lambda do serviço da web e a API no API Gateway. O AWS CodeStar dá ao pipeline o nome my-sam-project--Pipeline, onde my-sam-project é o ID do projeto.
-
A função do Lambda que contém a lógica do serviço da web. O AWS CodeStar dá à função o nome awscodestar-my-sam-project-lambda-HelloWorld-
RANDOM_ID
, onde:-
my-sam-project é o ID do projeto.
-
HelloWorld é o ID da função conforme especificado no arquivo
template.yaml
no repositório do AWS CodeCommit. Você explorará esse arquivo mais tarde. -
RANDOM_ID
é um ID aleatório que o SAM da AWS atribui à função para ajudar a garantir a exclusividade.
-
-
A API no API Gateway que facilita chamar a função do Lambda. O AWS CodeStar dá à API o nome awscodestar-my-sam-project--lambda, onde my-sam-project é o ID do projeto.
Para explorar o repositório de código-fonte no CodeCommit
-
Com seu projeto aberto no console do AWS CodeStar, na barra de navegação, selecione Repositório.
-
Escolha o link para seu repositório do CodeCommit (
My-SAM-Project
) em Detalhes do repositório. -
No console do CodeCommit, na página Código, os arquivos de código-fonte para o projeto são exibidos:
-
buildspec.yml
, que o CodePipeline instrui o CodeBuild a ser usado durante a fase de construção, para empacotar o serviço da web usando o AWS SAM. -
index.py
, que contém a lógica para a função do Lambda Essa função simplesmente gera a stringHello World
e um carimbo de data e hora no formato ISO. -
README.md
, que contém informações gerais sobre o repositório. -
template-configuration.json
, que contém o ARN do projeto com espaços reservados usados para marcar recursos com o ID do projeto. -
template.yml
, que o AWS SAM usa para empacotar o serviço da web e criar a API no API Gateway.
Para visualizar o conteúdo de um arquivo, escolha-o na lista.
Para obter mais informações sobre o uso do console CodeCommit, consulte o Guia do usuário do AWS CodeCommit.
-
Para explorar o pipeline no CodePipeline
-
Para exibir informações sobre o pipeline, com seu projeto aberto no console do AWS CodeStar na barra de navegação lateral, selecione Pipeline e verá que o pipeline contém:
-
Uma fase Origem para obter o código-fonte do CodeCommit.
-
O estágio Criar para compilar o código-fonte com o CodeBuild.
-
Uma fase Deploy (Implantar) para implantar o código-fonte e os recursos da AWS com o AWS SAM.
-
-
Para ver mais informações sobre o pipeline, em Detalhes do pipeline, escolha seu pipeline para abri-lo no console do CodePipeline.
Para obter informações sobre o uso do console CodePipeline, consulte o Guia do usuário do AWS CodePipeline.
Para explorar a atividade do projeto e os recursos de serviço do AWS na página Visão geral
-
Abra o projeto no console do AWS CodeStar e, na barra de navegação, escolha Visão geral.
-
Analise as listas Atividade do projeto e Recursos do projeto.
Para explorar a função no Lambda
-
Com seu projeto aberto no console do AWS CodeStar, na barra de navegação lateral, selecione Visão geral.
-
Em Recursos do projeto, na coluna ARN, escolha o link da função do Lambda.
O código da função é exibido no console do Lambda.
Para obter informações sobre o uso do console Lambda, consulte o Manual do desenvolvedor do AWS Lambda.
Para explorar o API no API Gateway
-
Com seu projeto aberto no console do AWS CodeStar, na barra de navegação lateral, selecione Visão geral.
-
Em Recursos do projeto, na coluna ARN, escolha o link da API do Amazon API Gateway.
Os recursos da API são exibidos no console do API Gateway.
Para obter informações sobre o uso do console API Gateway, consulte o Guia do desenvolvedor.
Etapa 3: Testar o serviço da web
Nesta etapa, você testará o serviço da web que o AWS CodeStar acabou de criar e implantar.
-
Com o seu projeto ainda aberto da etapa anterior, na barra de navegação, selecione Pipeline.
-
No bloco Implantação contínua, verifique se Bem-sucedido é exibido para as fases Origem, Criar e Implantar antes de continuar. Isso pode demorar vários minutos.
nota
Se Failed (Com falha) for exibido para qualquer uma das fases, consulte o seguinte para obter ajuda na solução do problema:
-
No estágio Origem, consulte Solucionar problemas do AWS CodeCommit no Guia do usuário do AWS CodeCommit.
-
No estágio Criar, consulte Solucionar problemas do AWS CodeBuild no Guia do usuário do AWS CodeBuild.
-
No estágio Implantar, consulte Solucionar problemas do AWS CloudFormation no Guia do usuário do AWS CloudFormation.
-
Para outros problemas, consulte Solução de problemas AWS CodeStar.
-
-
Escolha Novo aplicativo
Na nova guia que é aberta no navegador da web, o serviço da web exibe a seguinte saída de resposta:
{"output": "Hello World", "timestamp": "2017-08-30T15:53:42.682839"}
Etapa 4: Configurar sua estação de trabalho local para editar o código do projeto
Nesta etapa, você configura a estação de trabalho local para editar o código-fonte no projeto do AWS CodeStar. Sua estação de trabalho local pode ser um computador físico ou virtual que execute macOS, Windows ou Linux.
-
Com o projeto ainda aberto da etapa anterior:
-
Na barra de navegação, escolha IDE e, em seguida, expanda Acesse o código do seu projeto.
-
Escolha Exibir instruções abaixo da interface da linha de comando.
Se você tiver o Visual Studio ou o Eclipse instalado, escolha Exibir as instruções sob Visual Studio, ou Eclipse, siga as instruções e, em seguida, vá para Etapa 5: Adicionar lógica ao serviço da web.
-
-
Siga as instruções para concluir as tarefas a seguir:
-
Configure o Git na sua estação de trabalho local.
-
Use o console do IAM para gerar credenciais do Git para o seu usuário do IAM.
-
Clone o repositório do CodeCommit do projeto em sua estação de trabalho local.
-
-
No painel de navegação esquerdo, escolha Projeto para retornar à visão geral do projeto.
Etapa 5: Adicionar lógica ao serviço da web
Nesta etapa, você usa a estação de trabalho local para adicionar lógica ao serviço da web. Especificamente, você adiciona uma função do Lambda e, em seguida, a conecta à API no API Gateway.
-
Na estação de trabalho local, vá até o diretório que contém o repositório de código-fonte clonado.
-
Nesse diretório, crie um arquivo chamado
hello.py
. Adicione o seguinte código e salve-o em seguida:import json def handler(event, context): data = { 'output': 'Hello ' + event["pathParameters"]["name"] } return { 'statusCode': 200, 'body': json.dumps(data), 'headers': {'Content-Type': 'application/json'} }
O código anterior gera a string
Hello
e a string que o chamador enviar para a função -
No mesmo diretório, abra o arquivo
template.yml
. Adicione o seguinte código ao final do arquivo e salve-o em seguida:Hello: Type: AWS::Serverless::Function Properties: FunctionName: !Sub 'awscodestar-${ProjectId}-lambda-Hello' Handler: hello.handler Runtime: python3.7 Role: Fn::GetAtt: - LambdaExecutionRole - Arn Events: GetEvent: Type: Api Properties: Path: /hello/{name} Method: get
O AWS SAM usa esse código anterior para criar uma função no Lambda, adicionar um novo método e o caminho à API no API Gateway e, em seguida, conectar esse método e o caminho à nova função.
nota
O recuo do código anterior é importante. Se você não adicionar o código exatamente como for mostrado, o projeto poderá não ser criado corretamente.
-
Execute git add . para adicionar as alterações do arquivo à área de preparação do repositório clonado. Não se esqueça do ponto (.), que adiciona todos os arquivos alterados.
nota
Se você estiver usando o Visual Studio ou o Eclipse em vez da linha de comando, as instruções para o uso do Git podem ser diferentes. Consulte a documentação do Eclipse ou do Visual Studio.
-
Executar git commit -m "Added hello.py and updated template.yaml." para confirmar os arquivos preparados no repositório clonado
-
Execute git push para enviar a confirmação para o repositório remoto por push.
nota
Você pode ser solicitado a fornecer as credenciais de login geradas anteriormente. Para que não sejam solicitados toda vez que você interagir com o repositório remoto, considere instalar e configurar um gerenciador de credenciais do Git. Por exemplo, no macOS ou no Linux, você pode executar git config credential.helper 'cache --timeout 900' no terminal para serem solicitados a cada 15 minutos. Ou você pode executar git config credential.helper 'store --file ~/.git-credentials' para nunca serem solicitados novamente. O Git armazena suas credenciais em texto nítido em um arquivo sem formatação em seu diretório inicial. Para obter mais informações, consulte Ferramentas do GiT – armazenamento de credenciais
no site do Git.
Depois que o AWS CodeStar detectar o push, ele instruirá o CodePipeline a usar o CodeBuild e o AWS SAM para reconstruir e reimplantar o serviço da web. Você pode acompanhar o progresso da implantação na página Pipeline.
O AWS SAM fornece à nova função o nome awscodestar-my-sam-project-lambda-Hello-RANDOM_ID
, em que:
-
my-sam-project é o ID do projeto.
-
Hello é o ID da função conforme especificado no arquivo
template.yaml
. -
RANDOM_ID
é um ID aleatório que o AWS SAM atribui à função para fins de exclusividade.
Etapa 6: Testar o serviço da web aprimorado
Nesta etapa, você testará o serviço da web aprimorado que o AWS CodeStar criou e implantou com base na lógica que você adicionou na etapa anterior.
-
Com seu projeto ainda aberto no console do AWS CodeStar, na barra de navegação, selecione Pipeline.
-
Assegure-se de ter executado o pipeline novamente e de que Bem-sucedido apareça nos estágios de Origem, Criação, e Implantação antes de continuar. Isso pode demorar vários minutos.
nota
Se Failed (Com falha) for exibido para qualquer uma das fases, consulte o seguinte para obter ajuda na solução do problema:
-
No estágio Origem, consulte Solucionar problemas do AWS CodeCommit no Guia do usuário do AWS CodeCommit.
-
No estágio Criar, consulte Solucionar problemas do AWS CodeBuild no Guia do usuário do AWS CodeBuild.
-
No estágio Implantar, consulte Solucionar problemas do AWS CloudFormation no Guia do usuário do AWS CloudFormation.
-
Para outros problemas, consulte Solução de problemas AWS CodeStar.
-
-
Escolha Novo aplicativo
Na nova guia que é aberta no navegador da web, o serviço da web exibe a seguinte saída de resposta:
{"output": "Hello World", "timestamp": "2017-08-30T15:53:42.682839"}
-
Na caixa de endereço da guia, adicione o caminho
/hello/
e o nome ao final do URL (por exemplo, https://API_ID
.execute-api.REGION_ID
.amazonaws.com/Prod/hello/YOUR_FIRST_NAME
) e pressione Enter.
Se o seu nome for Mary, o serviço da web exibirá a saída de resposta a seguir:
{"output": "Hello Mary"}
Etapa 7: Adicionar um teste de unidade ao serviço da web
Nesta etapa, você usa a estação de trabalho local para adicionar um teste que o AWS CodeStar executa no serviço da web. Esse teste substitui os testes manuais que você fez anteriormente.
-
Na estação de trabalho local, vá até o diretório que contém o repositório de código-fonte clonado.
-
Nesse diretório, crie um arquivo chamado
hello_test.py
. Adicione o seguinte código e salve-o em seguida.from hello import handler def test_hello_handler(): event = { 'pathParameters': { 'name': 'testname' } } context = {} expected = { 'body': '{"output": "Hello testname"}', 'headers': { 'Content-Type': 'application/json' }, 'statusCode': 200 } assert handler(event, context) == expected
Esse teste verifica se o resultado da função do Lambda está no formato esperado. Se a resposta for sim, o teste será bem-sucedido. Caso contrário, o teste falhará.
-
No mesmo diretório, abra o arquivo
buildspec.yml
. Substitua o conteúdo do arquivo pelo seguinte código e, em seguida, salve o arquivo.version: 0.2 phases: install: runtime-versions: python: 3.7 commands: - pip install pytest # Upgrade AWS CLI to the latest version - pip install --upgrade awscli pre_build: commands: - pytest build: commands: # Use AWS SAM to package the application by using AWS CloudFormation - aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.yml # Do not remove this statement. This command is required for AWS CodeStar projects. # Update the AWS Partition, AWS Region, account ID and project ID in the project ARN on template-configuration.json file so AWS CloudFormation can tag project resources. - sed -i.bak 's/\$PARTITION\$/'${PARTITION}'/g;s/\$AWS_REGION\$/'${AWS_REGION}'/g;s/\$ACCOUNT_ID\$/'${ACCOUNT_ID}'/g;s/\$PROJECT_ID\$/'${PROJECT_ID}'/g' template-configuration.json artifacts: type: zip files: - template-export.yml - template-configuration.json
Essa especificação de criação instrui o CodeBuild a instalar o pytest, a estrutura de teste do Python, em seu ambiente de produção. O CodeBuild usa o pytest para executar o teste de unidade. O resto da especificação de criação é o mesmo de antes.
-
Use o Git para enviar essas alterações para o repositório remoto.
git add . git commit -m "Added hello_test.py and updated buildspec.yml." git push
Etapa 8: Visualizar os resultados do teste de unidade
Nesta etapa, você verá se o teste de unidade foi bem-sucedido ou não.
-
Com seu projeto ainda aberto no console do AWS CodeStar, na barra de navegação, selecione Pipeline.
-
Certifique-se de que o pipeline tenha funcionado novamente antes de continuar. Isso pode demorar vários minutos.
Se o teste de unidade foi bem-sucedido, Succeeded (Bem-sucedido) será exibido para a fase Build (Criar).
-
Para visualizar os detalhes do resultado de teste de unidade, no estágio Criar, escolha o link CodeBuild.
-
No console do CodeBuild, na página Criar projeto: my-sam-project, em Histórico de criação, escolha o link na coluna Execução da criação da tabela.
-
Na página my-sam-project:
BUILD_ID
, em Build logs (Criar logs), escolha o link View entire log (Exibir todo o log). -
No console do Amazon CloudWatch Logs, procure um resultado de teste semelhante ao seguinte na saída do log. No resultado do teste a seguir, o teste foi bem-sucedido:
... ============================= test session starts ============================== platform linux2 -- Python 2.7.12, pytest-3.2.1, py-1.4.34, pluggy-0.4.0 rootdir: /codebuild/output/src123456789/src, inifile: collected 1 item hello_test.py . =========================== 1 passed in 0.01 seconds =========================== ...
Se o teste falhou, deve haver detalhes na saída do log para ajudá-lo a solucionar a falha.
Etapa 9: Limpeza
Nesta etapa, você limpa o projeto para evitar custos contínuos desse projeto.
Se você deseja continuar a usar esse projeto, pode ignorar essa etapa, mas sua conta da AWS poderá continuar a ser cobrada.
-
Com seu projeto ainda aberto no console do AWS CodeStar, na barra de navegação, selecione Configurações.
-
Em Detalhes do projeto, Selecione Excluir projeto.
-
Insira
delete
, mantenha a caixa Excluir recursos selecionada e escolha Excluir.Importante
Se você desmarcar essa caixa, o registro do projeto será excluído do AWS CodeStar, mas muitos dos recursos da AWS do projeto serão mantidos. A conta da AWS pode continuar sendo cobrada.
Se ainda houver um bucket do Amazon S3 criado pelo AWS CodeStar para esse projeto, siga estas etapas para excluí-lo:
-
Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
Na lista de buckets, escolha o ícone ao lado de aws-codestar-
REGION_ID
–ACCOUNT_ID
-my-sam-project--pipe, em que:-
REGION_ID
é o ID da região da AWS do projeto recém-excluído. -
ACCOUNT_ID
é o ID da conta da AWS. -
my-sam-project é o ID do projeto que você acabou de excluir.
-
-
Escolha Empty Bucket (Esvaziar bucket). Digite o nome do bucket e escolha Confirm (Confirmar).
-
Escolha Excluir bucket. Digite o nome do bucket e escolha Confirm (Confirmar).
Próximas etapas
Agora que você concluiu este tutorial, sugerimos analisar os seguintes recursos:
-
O tutorial do Conceitos básicos do AWS CodeStar usa um projeto que cria e implanta um aplicativo web baseado em Node.js em execução em uma instância do Amazon EC2.
-
Modelos de projetos do AWS CodeStar descreve outros tipos de projeto que você pode criar.
-
Como trabalhar com equipes AWS CodeStar mostra como outras pessoas podem ajudá-lo a trabalhar em seus projetos.