Tutorial: automatizar o gerenciamento de seus próprios endpoints de ambiente no Amazon MWAA - Amazon Managed Workflows for Apache Airflow

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: automatizar o gerenciamento de seus próprios endpoints de ambiente no Amazon MWAA

Se você usa AWS Organizationspara gerenciar várias AWS contas que compartilham recursos, o Amazon MWAA permite que você crie e gerencie seus próprios endpoints Amazon VPC. Isso significa que você pode usar políticas de segurança mais rígidas que permitam acessar somente os recursos exigidos pelo seu ambiente.

Ao criar um ambiente em uma Amazon VPC compartilhada, a conta proprietária da Amazon VPC central (proprietário) compartilha as duas sub-redes privadas exigidas pelo Amazon MWAA com outras contas (participantes) que pertencem à mesma organização. As contas participantes que compartilham essas sub-redes podem então exibir, criar, modificar e excluir ambientes na VPC compartilhada.

Ao criar um ambiente em uma Amazon VPC compartilhada ou restrita por política, o Amazon MWAA primeiro cria os recursos da VPC de serviço e, em seguida, entra em um estado PENDING por até 72 horas.

Quando o status do ambiente muda de CREATING paraPENDING, o Amazon MWAA envia uma EventBridge notificação à Amazon sobre a mudança de estado. Isso permite que a conta do proprietário crie os endpoints necessários em nome dos participantes com base nas informações do serviço de endpoint do console ou da API do Amazon MWAA, ou programaticamente. A seguir, criamos novos endpoints do Amazon VPC usando uma função Lambda e uma EventBridge regra que escuta as notificações de mudança de estado do Amazon MWAA.

Aqui, criamos os endpoints na mesma Amazon VPC do ambiente. Para configurar uma Amazon VPC compartilhada, crie a EventBridge regra e a função Lambda na conta do proprietário e no ambiente Amazon MWAA na conta do participante.

Pré-requisitos

Para concluir os passos deste tutorial, você precisará do seguinte:

  • ...

Criar a Amazon VPC

Use o AWS CloudFormation modelo e o AWS CLI comando a seguir para criar uma nova Amazon VPC. O modelo configura os recursos da Amazon VPC e modifica a política de endpoints para restringir o acesso a uma fila específica.

  1. Baixe o AWS CloudFormation modelo e, em seguida, descompacte o .yml arquivo.

  2. Em uma nova janela do prompt de comando, navegue até a pasta em que o modelo foi salvo e use create-stack para criar a pilha. O sinalizador --template-body especifica o caminho para o modelo.

    $ aws cloudformation create-stack --stack-name stack-name --template-body file://cfn-vpc-private-network.yml

Na próxima seção, você criará a função do Lambda.

Criar a função do Lambda

Use o código Python a seguir e a política JSON do IAM para criar uma função do Lambda e função de execução. Essa função cria endpoints da Amazon VPC para um servidor Web Apache Airflow privado e uma fila do Amazon SQS. O Amazon MWAA usa o Amazon SQS para enfileirar tarefas com o Celery entre vários trabalhadores ao escalar seu ambiente.

  1. Baixe o código da função Python.

  2. Faça download da política de permissão do IAM e descompacte o arquivo.

  3. Abra um prompt de comando e navegue até a pasta em que a política de permissão do JSON foi salva. Use o comando create-role do IAM para criar a função.

    $ aws iam create-role --role-name function-role \ --assume-role-policy-document file://lambda-mwaa-vpce-policy.json

    Observe o ARN da função na AWS CLI resposta. Na próxima etapa, especificaremos essa nova função como a função de execução da função usando o ARN.

  4. Navegue até a pasta em que o código da função foi salvo e use o comando create-function para criar uma função.

    $ aws lambda create-function --function-name mwaa-vpce-lambda \ --zip-file file://mwaa-lambda-shared-vpc.zip --runtime python3.8 --role arn:aws:iam::123456789012:role/function-role --handler lambda_handler

    Observe a função ARN da AWS CLI resposta. Na próxima etapa, especificamos o ARN para configurar a função como destino para uma nova EventBridge regra.

Na próxima seção, você criará a EventBridge regra que invoca essa função quando o ambiente entra em um PENDING estado.

Crie a EventBridge regra

Siga as instruções a seguir para criar uma regra que receba as notificações do Amazon MWAA e tenha como destino sua nova função do Lambda.

  1. Use o EventBridge put-rule comando para criar uma nova EventBridge regra.

    $ aws events put-rule --name "mwaa-lambda-rule" \ --event-pattern "{\"source\":[\"aws.airflow\"],\"detail-type\":[\"MWAA Environment Status Change\"]}"

    O padrão de eventos recebe as notificações que o Amazon MWAA envia sempre que o status de um ambiente muda.

    { "source": ["aws.airflow"], "detail-type": ["MWAA Environment Status Change"] }
  2. Use o comando put-targets para adicionar a função do Lambda com um destino para a nova regra.

    $ aws events put-targets --rule "mwaa-lambda-rule" \ --targets "Id"="1","Arn"="arn:aws::lambda:region:123456789012:function:mwaa-vpce-lambda"

Está tudo pronto para criar um ambiente do Amazon MWAA com endpoints da Amazon VPC gerenciados pelo cliente.

Criar o ambiente do Amazon MWAA

Use o console do Amazon MWAA para criar um ambiente com endpoints da Amazon VPC gerenciados pelo cliente.

  1. Abra o console do Amazon MWAA e escolha Criar um ambiente.

  2. Em Nome, insira um nome exclusivo.

  3. Em Versão do Airflow, escolha a mais recente.

  4. Escolha um bucket e uma DAGs pasta do Amazon S3, como dags/ para usar com o ambiente, e escolha Avançar.

  5. Na página Configurar definições avançadas, faça o seguinte:

    1. Em Nuvem privada virtual (VPC), escolha a Amazon VPC criada na etapa anterior.

    2. Em Acesso ao servidor Web, escolha Rede pública (acessível pela Internet).

    3. Em Grupos de segurança, escolha o grupo de segurança com o qual você criou AWS CloudFormation. Como os grupos de segurança dos endpoints de AWS PrivateLink da etapa anterior são autorreferenciados, você deve escolher o mesmo grupo de segurança para o seu ambiente.

    4. Em Gerenciamento de endpoints, escolha Endpoints gerenciados pelo cliente.

  6. Mantenha as configurações padrão restantes e escolha Avançar.

  7. Revise suas seleções e escolha Criar ambiente.

dica

Para obter mais informações sobre como configurar um novo ambiente, consulte Getting started with Amazon MWAA.

Quando o ambiente estiver PENDING, o Amazon MWAA envia uma notificação que corresponde ao padrão de evento que você definiu para a regra. A regra invoca a função do Lambda. A função analisa o evento de notificação e obtém as informações de endpoint necessárias para o servidor Web e a fila do Amazon SQS. Em seguida, ela cria os endpoints na Amazon VPC.

Quando os endpoints estão disponíveis, o Amazon MWAA retoma a criação do ambiente. Quando estiver pronto, o status do ambiente muda para AVAILABLE e você pode acessar o servidor Web Apache Airflow usando o console do Amazon MWAA.