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á.
Uso da API REST do Apache Airflow
O Amazon Managed Workflows for Apache Airflow (Amazon MWAA) oferece suporte à interação com os ambientes do Apache Airflow diretamente usando a API REST do Apache Airflow para ambientes que executam o Apache Airflow v2.4.3 e superior. Isso permite que você acesse e gerencie seus ambientes Amazon MWAA de forma programática, fornecendo uma forma padronizada de invocar fluxos de trabalho de orquestração de dados, gerenciar seus e DAGs monitorar o status de vários componentes do Apache Airflow, como o banco de dados de metadados, o acionador e o agendador.
Para oferecer suporte à escalabilidade ao usar a API REST do Apache Airflow, o Amazon MWAA oferece a opção de escalar horizontalmente a capacidade do servidor Web de lidar com o aumento da demanda, seja de solicitações da API REST, de uso da interface de linha de comandos (CLI) ou de mais usuários simultâneos da interface de usuário (UI) do Apache Airflow. Para obter mais informações sobre como o Amazon MWAA escala servidores Web, consulte Como configurar o ajuste de escala automático do servidor Web do Amazon MWAA.
Você pode usar a API REST do Apache Airflow para implementar os seguintes casos de uso nos ambientes:
-
Acesso programático: agora você pode iniciar as execuções de DAG do Apache Airflow, gerenciar conjuntos de dados e recuperar o status de vários componentes, como banco de dados de metadados, acionadores e programadores, sem depender da interface de usuário ou da CLI do Apache Airflow.
-
Integre-se com aplicações e microsserviços externos: suporte à API REST que pode ser usado para criar soluções personalizadas que integram seus ambientes do Amazon MWAA com outros sistemas. Por exemplo, você pode iniciar fluxos de trabalho em resposta a eventos de sistemas externos, como trabalhos concluídos no banco de dados ou inscrições de novos usuários.
-
Monitoramento centralizado — Você pode criar painéis de monitoramento que agregam o status do seu em DAGs vários ambientes Amazon MWAA, permitindo monitoramento e gerenciamento centralizados.
Para obter mais informações sobre a API REST do Apache Airflow, consulte a Referência da API REST do Apache Airflow
Ao usarInvokeRestApi, você pode acessar a API REST do Apache Airflow usando credenciais. AWS Como alternativa, você também pode acessá-la obtendo um token de acesso ao servidor Web e, em seguida, usando o token para chamá-la.
Se você receber a mensagem de erro Update your environment to use InvokeRestApi ao usar a operação InvokeRestApi, será preciso atualizar o ambiente do Amazon MWAA. Esse erro ocorre quando o ambiente do Amazon MWAA não é compatível com as alterações mais recentes relacionadas ao atributo InvokeRestApi. Para resolver esse problema, atualize o ambiente do Amazon MWAA para incorporar as alterações necessárias ao atributo InvokeRestApi.
A operação InvokeRestApi tem uma duração padrão de tempo limite de 10 segundos. Se a operação não for concluída dentro desse período de 10 segundos, ela será automaticamente encerrada e um erro será gerado. Projete suas chamadas de API REST de modo que sejam concluídas durante esse tempo limite para evitar erros.
Para oferecer suporte à escalabilidade ao usar a API REST do Apache Airflow, o Amazon MWAA oferece a opção de escalar horizontalmente a capacidade do servidor Web de lidar com o aumento da demanda, seja de solicitações da API REST, de uso da interface de linha de comandos (CLI) ou de mais usuários simultâneos da interface de usuário (UI) do Apache Airflow. Para obter mais informações sobre como o Amazon MWAA escala servidores Web, consulte Como configurar o ajuste de escala automático do servidor Web do Amazon MWAA.
Você pode usar a API REST do Apache Airflow para implementar os seguintes casos de uso nos ambientes:
-
Acesso programático: agora você pode iniciar as execuções de DAG do Apache Airflow, gerenciar conjuntos de dados e recuperar o status de vários componentes, como banco de dados de metadados, acionadores e programadores, sem depender da interface de usuário ou da CLI do Apache Airflow.
-
Integre-se com aplicações e microsserviços externos: suporte à API REST que pode ser usado para criar soluções personalizadas que integram seus ambientes do Amazon MWAA com outros sistemas. Por exemplo, você pode iniciar fluxos de trabalho em resposta a eventos de sistemas externos, como trabalhos concluídos no banco de dados ou inscrições de novos usuários.
-
Monitoramento centralizado — Você pode criar painéis de monitoramento que agregam o status do seu em DAGs vários ambientes Amazon MWAA, permitindo monitoramento e gerenciamento centralizados.
Para obter mais informações sobre a API REST do Apache Airflow, consulte a Referência da API REST do Apache Airflow
Ao usarInvokeRestApi, você pode acessar a API REST do Apache Airflow usando credenciais. AWS Como alternativa, você também pode acessá-la obtendo um token de acesso ao servidor Web e usando o token para chamá-la.
-
Se você receber a mensagem de erro
Update your environment to use InvokeRestApiao usar a operaçãoInvokeRestApi, será preciso atualizar o ambiente do Amazon MWAA. Esse erro ocorre quando o ambiente do Amazon MWAA não é compatível com as alterações mais recentes relacionadas ao atributoInvokeRestApi. Para resolver esse problema, atualize o ambiente do Amazon MWAA para incorporar as alterações necessárias ao atributoInvokeRestApi. -
A operação
InvokeRestApitem uma duração padrão de tempo limite de 10 segundos. Se a operação não for concluída dentro desse período de 10 segundos, ela será automaticamente encerrada e um erro será gerado. Projete suas chamadas de API REST de modo que sejam concluídas durante esse tempo limite para evitar erros.
Importante
O tamanho da carga útil da resposta não pode ser superior a 6 MB. A RestApi falhará se esse limite for excedido.
Use os exemplos a seguir para fazer chamadas de API para a API REST do Apache Airflow e iniciar uma nova execução de DAG:
Tópicos
Concessão de acesso à API REST do Apache Airflow: airflow:InvokeRestApi
Para acessar a API REST do Apache Airflow AWS usando credenciais, você deve conceder a permissão em sua política airflow:InvokeRestApi do IAM. No exemplo de política a seguir, especifique o perfil Admin, Op, User, Viewer ou Public em {airflow-role} para personalizar o nível de acesso do usuário. Para obter mais informações, consulte Perfis padrão
nota
Ao configurar um servidor Web privado, a ação InvokeRestApi não pode ser invocada de fora de uma nuvem privada virtual (VPC). Você pode usar a chave aws:SourceVpc para aplicar um controle de acesso mais granular para essa operação. Para obter mais informações, consulte aws: SourceVpc.
Como chamar a API REST do Apache Airflow
O script de exemplo a seguir aborda como usar a API REST do Apache Airflow para listar o DAGs disponível em seu ambiente e como criar uma variável do Apache Airflow:
import boto3 env_name = "MyAirflowEnvironment" def list_dags(client): request_params = { "Name": env_name, "Path": "/dags", "Method": "GET", "QueryParameters": { "paused": False } } response = client.invoke_rest_api( **request_params ) print("Airflow REST API response: ", response['RestApiResponse']) def create_variable(client): request_params = { "Name": env_name, "Path": "/variables", "Method": "POST", "Body": { "key": "test-restapi-key", "value": "test-restapi-value", "description": "Test variable created by MWAA InvokeRestApi API", } } response = client.invoke_rest_api( **request_params ) print("Airflow REST API response: ", response['RestApiResponse']) if __name__ == "__main__": client = boto3.client("mwaa") list_dags(client) create_variable(client)
Como criar um token de sessão do servidor Web e chamar a API REST do Apache Airflow
Para criar um token de acesso ao servidor Web, use a função Python a seguir. Essa função primeiro chama a API do Amazon MWAA para obter um token de login da Web. O token de login da Web, que expira após 60 segundos, é então trocado por um token de sessão da Web, que permite acessar o servidor Web e usar a API REST do Apache Airflow. Caso precise de mais de 10 transações por segundo (TPS) de capacidade de controle de utilização, poderá usar esse método para acessar a API REST do Apache Airflow.
O token da sessão expira após 12 horas.
dica
As principais mudanças nos seguintes exemplos de código do Apache Airflow v2 para v3 são:
-
O caminho da API REST foi alterado de
/api/v1para/api/v2 -
O caminho de login foi alterado de
/aws_maa/loginpara/pluginsv2/aws_mwaa/login -
A resposta do login
response.cookies["_token"]contém informações de token que você deve usar para as chamadas de API subsequentes -
Para uma chamada de API REST, você deve passar as informações
jwt_tokennos cabeçalhos como:headers = { "Authorization": f"Bearer {jwt_token}", "Content-Type": "application/json" }
Depois que a autenticação for concluída, você terá as credenciais para começar a enviar solicitações aos endpoints da API. No exemplo da seção a seguir, use o endpoint dags/{dag_name}/dagRuns.