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á.
O exemplo de Python a seguir usa Boto3
Pré-requisitos
Crie ou encontre uma função Lambda em sua conta.
Esse exemplo pressupõe que você já tenha criado uma função Lambda em sua conta e a CodeBuild usará para atualizar as variáveis de ambiente da função Lambda. Para obter mais informações sobre como configurar uma função Lambda por meio CodeBuild, consulte o Implemente uma função Lambda usando o AWS SAM CodeBuild Lambda Java exemplo ou visite. AWS Lambda
Configurar seu repositório de origem
Crie um repositório de origem para armazenar seu script Python do Boto3.
Para configurar o repositório de origem
-
Copie o seguinte script python para 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 fonte compatíveis, consulte ProjectSource.
Crie um projeto CodeBuild Lambda Python
Crie um projeto 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 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.
Em Project name (Nome do projeto), insira um nome para esse projeto de compilação. Os nomes de projeto de build devem ser únicos em cada conta 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 Código-fonte, selecione o repositório de origem em que seu AWS SAM projeto está localizado.
-
Em Environment (Ambiente):
-
Para Computação, selecione Lambda.
-
Em Tempo de execução (s), selecione Python.
-
Para Imagem, selecione aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12.
-
Em Função de serviço, deixe a opção Nova função 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 nesta amostra.
-
-
Selecione Create build project (Criar projeto de compilação).
-
Abra o console IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Funções e selecione a função de serviço associada ao seu projeto. Você pode encontrar sua função de projeto em CodeBuild selecionando seu projeto de compilação, escolhendo Editar, Ambiente e, em seguida, Função de serviço.
-
Escolha a guia Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).
-
Adicione a seguinte política em linha à sua função 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.
{ "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 seu projeto
-
No CodeBuild console, selecione seu projeto de compilação e escolha Editar e Buildspec.
-
No Buildspec, escolha Inserir comandos de compilação e, em seguida, Alternar para o 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 Update buildspec (Atualizar buildspec).
Atualize sua configuração do Lambda
Use o CodeBuild Lambda Python para atualizar automaticamente a configuração da função Lambda.
Para atualizar a configuração da sua função Lambda
-
Selecione Start build.
-
Quando a compilação estiver concluída, navegue até sua função Lambda.
-
Selecione Configuração e, em seguida, Variáveis de ambiente. Você deve ver uma nova variável de ambiente com chave
FEATURE_ENABLED
e valortrue
.
Limpe sua infraestrutura
Para evitar cobranças adicionais pelos recursos que você usou durante este tutorial, exclua os recursos criados para o seu CodeBuild projeto.
Para limpar sua infraestrutura
-
Navegue até o CloudWatch console e exclua os grupos de CloudWatch registros associados ao seu CodeBuild projeto.
-
Navegue até o CodeBuild console e exclua seu CodeBuild projeto escolhendo Excluir projeto de compilação.
-
Se você criou uma função Lambda para o propósito deste exemplo, escolha a função Ações e Excluir para limpar sua função 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 o papel do IAM associado ao seu CodeBuild projeto para ter permissões para os novos recursos.
-
Adicione quaisquer novas variáveis de ambiente associadas aos novos recursos ao seu buildspec.