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) suporta a interação com seus ambientes Apache Airflow diretamente usando a API REST do Apache Airflow para ambientes que executam o Apache Airflow v2.4.3 e versões posteriores. 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 para lidar com o aumento da demanda, seja de solicitações da API REST, uso da interface de linha de comando (CLI) ou 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. Configurando a escalabilidade automática do servidor web Amazon MWAA
Você pode usar a API REST do Apache Airflow para implementar os seguintes casos de uso em seus 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 aplicativos e microsserviços externos — suporte à API REST que você pode usar para criar soluções personalizadas que integram seus ambientes 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á-lo obtendo um token de acesso ao servidor web e, em seguida, usando o token para chamá-lo.
Se você encontrar um erro com a mensagem Update your environment to use InvokeRestApi ao usar a InvokeRestApi operação, isso indica que você precisa atualizar seu ambiente Amazon MWAA. Esse erro ocorre quando seu ambiente Amazon MWAA não é compatível com as alterações mais recentes relacionadas ao InvokeRestApi recurso. Para resolver esse problema, atualize seu ambiente Amazon MWAA para incorporar as alterações necessárias para o InvokeRestApi recurso.
A InvokeRestApi operação tem uma duração de tempo limite padrão 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. Certifique-se de que suas chamadas da API REST sejam projetadas para serem concluídas dentro desse período de 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 para lidar com o aumento da demanda, seja de solicitações da API REST, uso da interface de linha de comando (CLI) ou 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. Configurando a escalabilidade automática do servidor web Amazon MWAA
Você pode usar a API REST do Apache Airflow para implementar os seguintes casos de uso em seus 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 aplicativos e microsserviços externos — suporte à API REST que você pode usar para criar soluções personalizadas que integram seus ambientes 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 The 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ê encontrar um erro com a mensagem
Update your environment to use InvokeRestApiao usar aInvokeRestApioperação, isso indica que você precisa atualizar seu ambiente Amazon MWAA. Esse erro ocorre quando seu ambiente Amazon MWAA não é compatível com as alterações mais recentes relacionadas aoInvokeRestApirecurso. Para resolver esse problema, atualize seu ambiente Amazon MWAA para incorporar as alterações necessárias para oInvokeRestApirecurso. -
A
InvokeRestApioperação tem uma duração de tempo limite padrão 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. Certifique-se de que suas chamadas da API REST sejam projetadas para serem concluídas dentro desse período de tempo limite para evitar erros.
Importante
O tamanho da carga útil da resposta não pode exceder 6 MB. Você 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 do 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 a Admin Public função OpUser,Viewer,, ou {airflow-role} para personalizar o nível de acesso do usuário. Para obter mais informações, consulte Funções padrão
nota
Ao configurar um servidor web privado, a InvokeRestApi ação não pode ser invocada de fora de uma Virtual Private Cloud (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)
Criando um token de sessão do servidor web e chamando 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 da 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 chamadas de API subsequentes -
Para uma chamada de API REST, você deve passar
jwt_tokeninformações nos 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 endpointdags/{dag_name}/dagRuns.