View a markdown version of this page

Atualizar uma configuração de função do Lambda com o CodeBuild Lambda Python - AWS CodeBuild

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á.

Atualizar uma configuração de função do Lambda com o CodeBuild Lambda Python

O exemplo de Python a seguir usa Boto3 e CodeBuild Lambda Python para atualizar a configuração de uma função do Lambda. Essa amostra pode ser estendida para gerenciar outros AWS recursos de forma programática. Para obter mais informações, consulte a documentação do 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 Lambda em sua conta e a usará CodeBuild para atualizar as variáveis de ambiente da função Lambda. Para obter mais informações sobre como configurar uma função do Lambda CodeBuild, consulte o Implante uma função do Lambda usando AWS SAM com CodeBuild Lambda Java exemplo ou visite 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
  1. 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)
  2. Faça o upload do arquivo Python em um repositório de origem compatível. Para obter uma lista dos tipos de fontes compatíveis, consulte ProjectSource.

Crie um projeto CodeBuild Lambda Python

Crie um projeto CodeBuild Lambda Python.

Para criar seu projeto CodeBuild Lambda Java
  1. Abra o AWS CodeBuild console em https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Se uma página de CodeBuild informações for exibida, escolha Criar projeto de construção. Caso contrário, no painel de navegação, expanda Compilar, escolha Projetos de compilação e, depois, Criar projeto de compilação.

  3. Em Nome do projeto, insira um nome para esse projeto de compilação. Os nomes dos projetos de construção devem ser exclusivos em cada AWS conta. 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.

  4. Em Origem, selecione o repositório de origem em que seu AWS SAM projeto está localizado.

  5. 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. Você precisará disso ao atualizar as permissões de IAM do projeto posteriormente neste exemplo.

  6. Selecione Create build project (Criar projeto de compilação).

  7. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  8. No painel de navegação, escolha Funções e selecione o perfil de serviço associado ao projeto. Você pode encontrar sua função de projeto em CodeBuild selecionando seu projeto de construção, escolhendo Editar, Ambiente e, em seguida, Função de serviço.

  9. Escolha a guia Relacionamentos de confiança e, em seguida, escolha Editar política de confiança.

  10. Adicione a seguinte política em linha ao perfil do IAM. Isso será usado para implantar sua AWS SAM infraestrutura posteriormente. Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }

Configurar o buildspec do projeto

Para atualizar a função Lambda, o script lê as variáveis de ambiente do buildspec para encontrar o nome da função Lambda, o nome da variável de ambiente e o valor da variável de ambiente.

Para configurar o buildspec do projeto
  1. No CodeBuild console, selecione seu projeto de construção e escolha Editar e Buildspec.

  2. Em Buildspec, escolha Inserir comandos de compilação e, em seguida, escolha Alternar para editor.

  3. 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
  4. Selecione Atualizar buildspec.

Atualizar a configuração do Lambda

Use o CodeBuild Lambda Python para atualizar automaticamente a configuração da sua função do Lambda.

Para atualizar a configuração da sua função do Lambda
  1. Selecione Iniciar compilação.

  2. Quando a compilação estiver concluída, navegue até a função do Lambda.

  3. 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 valor true.

Limpar a infraestrutura

Para evitar cobranças adicionais pelos recursos que você usou durante este tutorial, exclua os recursos criados para seu CodeBuild projeto.

Para limpar a infraestrutura
  1. Navegue até o CloudWatch console e exclua os grupos de CloudWatch registros associados ao seu CodeBuild projeto.

  2. Navegue até o CodeBuild console e exclua seu CodeBuild projeto escolhendo Excluir projeto de construção.

  3. 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 essa amostra para gerenciar outros AWS recursos usando o AWS CodeBuild Lambda Python:

  • Atualize o script Python para modificar os novos recursos usando o Boto3.

  • Atualize a função do IAM associada ao seu CodeBuild projeto para ter permissões para os novos recursos.

  • Adicione quaisquer novas variáveis de ambiente associadas aos novos recursos ao buildspec.