O exemplo de Python a seguir usa Boto3
Pré-requisitos
Crie ou encontre uma função do Lambda na sua conta.
Este exemplo pressupõe que você já tenha criado uma função do Lambda na conta e usará o CodeBuild para atualizar as variáveis de ambiente da função do Lambda. Para obter mais informações sobre como configurar uma função do Lambda por meio do CodeBuild, veja o exemplo Implantar uma função do Lambda usando o AWS SAM com CodeBuild Lambda Java ou acesse AWS Lambda
Configurar o repositório de origem
Crie um repositório de origem para armazenar o script Python do Boto3.
Para configurar o repositório de origem
-
Copie o script do Python a seguir em um novo arquivo chamado
update_lambda_environment_variables.py
.import boto3 from os import environ def update_lambda_env_variable(lambda_client): lambda_function_name = environ['LAMBDA_FUNC_NAME'] lambda_env_variable = environ['LAMBDA_ENV_VARIABLE'] lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE'] print("Updating lambda function " + lambda_function_name + " environment variable " + lambda_env_variable + " to " + lambda_env_variable_value) lambda_client.update_function_configuration( FunctionName=lambda_function_name, Environment={ 'Variables': { lambda_env_variable: lambda_env_variable_value } }, ) if __name__ == "__main__": region = environ['AWS_REGION'] client = boto3.client('lambda', region) update_lambda_env_variable(client)
-
Faça o upload do arquivo Python em um repositório de origem compatível. Para obter uma lista dos tipos de origem compatíveis, consulte ProjectSource.
Criar um projeto do CodeBuild Lambda Python
Crie um projeto do CodeBuild Lambda Python.
Para criar seu projeto CodeBuild Lambda Java
-
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. -
Se uma página de informações do CodeBuild for exibida, selecione Criar projeto de compilação. Caso contrário, no painel de navegação, expanda Compilar, escolha Projetos de compilação e, depois, Criar projeto de compilação.
Em Nome do projeto, insira um nome para esse projeto de compilação. Os nomes de projeto de compilação devem ser únicos em cada conta da AWS. Também é possível incluir uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.
-
Em Origem, selecione o repositório de origem em que o projeto do AWS SAM está localizado.
-
Em Ambiente:
-
Para Computação, selecione Lambda.
-
Em Runtime(s), escolha Python.
-
Em Imagem, selecione aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12.
-
Em Perfil de serviço, deixe a opção Novo perfil de serviço selecionada. Anote o nome da função. Isso será necessário quando você atualizar as permissões do IAM do projeto posteriormente neste exemplo.
-
-
Selecione Criar projeto de compilação.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Funções e selecione o perfil de serviço associado ao projeto. Você pode encontrar o perfil do projeto no CodeBuild selecionando o projeto de compilação, escolhendo Editar, Ambiente e, em seguida, Perfil de serviço.
-
Escolha a guia Relacionamentos de confiança e, em seguida, escolha Editar política de confiança.
-
Adicione a seguinte política em linha ao perfil do IAM. Isso será usado para implantar sua infraestrutura do AWS SAM posteriormente. Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }
Configurar o buildspec do projeto
Para atualizar a função do Lambda, o script lê as variáveis de ambiente do buildspec para encontrar o nome da função do Lambda, o nome da variável de ambiente e o valor da variável de ambiente.
Para configurar o buildspec do projeto
-
No console do CodeBuild, selecione o projeto de compilação e escolha Editar e Buildspec.
-
Em Buildspec, escolha Inserir comandos de compilação e, em seguida, escolha Alternar para editor.
-
Exclua os comandos de compilação pré-preenchidos e cole o seguinte buildspec.
version: 0.2 env: variables: LAMBDA_FUNC_NAME: "
<lambda-function-name>
" LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED" LAMBDA_ENV_VARIABLE_VALUE: "true" phases: install: commands: - pip3 install boto3 build: commands: - python3 update_lambda_environment_variables.py -
Selecione Atualizar buildspec.
Atualizar a configuração do Lambda
Use o CodeBuild Lambda Python para atualizar automaticamente a configuração da função do Lambda.
Para atualizar a configuração da função do Lambda
-
Selecione Iniciar compilação.
-
Quando a compilação estiver concluída, navegue até a função do Lambda.
-
Escolha Configuração e, em seguida, as variáveis de Ambiente. Você deve ver uma nova variável de ambiente com a chave
FEATURE_ENABLED
e o valortrue
.
Limpar a infraestrutura
Para evitar cobranças adicionais pelos recursos usados durante este tutorial, exclua os recursos criados para o projeto do CodeBuild.
Para limpar a infraestrutura
-
Navegue até o console do CloudWatch e exclua os grupos de log do CloudWatch associados ao projeto do CodeBuild.
-
Navegue até o console do CodeBuild e exclua o projeto do CodeBuild escolhendo Excluir projeto de compilação.
-
Se você criou uma função do Lambda para o propósito deste exemplo, escolha Ações e Excluir função para limpar a função do Lambda.
Extensões
Se você quiser estender esse exemplo para gerenciar outros recursos da AWS usando o AWS CodeBuild Lambda Python:
-
Atualize o script Python para modificar os novos recursos usando o Boto3.
-
Atualize o perfil do IAM associado ao projeto do CodeBuild para ter permissões para os novos recursos.
-
Adicione quaisquer novas variáveis de ambiente associadas aos novos recursos ao buildspec.