python 有没有办法将变量和连接导入MWAA?

xdnvmnnf  于 2023-01-11  发布在  Python
关注(0)|答案(1)|浏览(112)

我有一个MWAA环境,我必须创建另一个由Terraform。环境创建不是一个问题,但我的旧环境的“元数据”。我想导入所有的变量和连接,编程,但我还没有弄清楚到目前为止。
我尝试在approach中更改一些东西,使用对MWAA CLI的POST请求,但我只得到一个超时。
有人曾经这样做过吗?我想导入变量和连接到我的MWAA环境,每次我创建它。

iovurdzv

iovurdzv1#

我知道您想将旧的MWAA变量复制到新示例中,您可以参考以下文档,其中包含AWS CLI https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-cli-command-reference.html支持的所有命令。
变量和连接设置和获取命令可用。
遗憾的是,AWS CLI不支持所有命令。请注意,您需要通过AWS MWAA CLI身份验证,获取令牌,然后才能执行支持的命令。有关详细信息https://docs.aws.amazon.com/mwaa/latest/userguide/call-mwaa-apis-cli.html,请参阅以下文档
以下是有关如何获取CLI令牌和执行命令的代码片段。

import boto3
import requests

AWS_MWAA_HOSTNAME_URL = ""

client = boto3.client('mwaa')

def generate_cli_token(mwaa_env_name):
    return client.create_cli_token(
        Name=mwaa_env_name
    )

def execute_mwaa_command(token, domain, command):
    res = requests.post(
        AWS_MWAA_HOSTNAME_URL.format(domain=domain),
        headers={
            'Authorization': f'Bearer {token}',
            'Content-Type': 'text/plain'
        },
        data=command
    )
    if res.status_code == 200:
        return res.json()
    else:
        print(res.text)
        res.raise_for_status()

相关问题