gpt4 book ai didi

python - GCP Cloud Composer : get_client_id. py 错误,需要参数

转载 作者:行者123 更新时间:2023-12-04 15:04:34 25 4
gpt4 key购买 nike

我对 GCP Cloud Composer 有疑问。

验证触发DAG的函数(工作流)我想通过引用下面文章中的python代码来获取客户端ID。 https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/composer/rest/get_client_id.py

运行程序时出现错误。

出现的错误如下。

usage: id.py [-h] project_id location composer_environment
id.py: error: the following arguments are required: project_id, location, composer_environment

错误的意思是参数project_id、location、composer_environment不够用。我明白意思,但我遇到了麻烦,因为无论我如何传递参数都会出现同样的错误。

下面是我尝试过的命令和代码的列表。


python3 id.py --project_id project_id --location location --composer_environment composer_environment

python3 id.py --project_id 'project_id' --location 'location' --composer_environment 'composer_environment'

python3 id.py --project_id --location --composer_environment

"""Get the client ID associated with a Cloud Composer environment."""

import argparse


def get_client_id(project_id, location, composer_environment):
# [START composer_get_environment_client_id]
import google.auth
import google.auth.transport.requests
import requests
import six.moves.urllib.parse

# Authenticate with Google Cloud.
# See: https://cloud.google.com/docs/authentication/getting-started
credentials, _ = google.auth.default(
scopes=['https://www.googleapis.com/auth/cloud-platform'])
authed_session = google.auth.transport.requests.AuthorizedSession(
credentials)

# project_id = 'YOUR_PROJECT_ID'
# location = 'us-central1'
# composer_environment = 'YOUR_COMPOSER_ENVIRONMENT_NAME'

environment_url = (
'https://composer.googleapis.com/v1beta1/projects/{}/locations/{}'
'/environments/{}').format(project_id, location, composer_environment)
composer_response = authed_session.request('GET', environment_url)
environment_data = composer_response.json()
airflow_uri = environment_data['config']['airflowUri']

# The Composer environment response does not include the IAP client ID.
# Make a second, unauthenticated HTTP request to the web server to get the
# redirect URI.
redirect_response = requests.get(airflow_uri, allow_redirects=False)
redirect_location = redirect_response.headers['location']

# Extract the client_id query parameter from the redirect.
parsed = six.moves.urllib.parse.urlparse(redirect_location)
query_string = six.moves.urllib.parse.parse_qs(parsed.query)
print(query_string['client_id'][0])
# [END composer_get_environment_client_id]


if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('project_id', help='Your Project ID.')
parser.add_argument(
'location', help='Region of the Cloud Composer environent.')
parser.add_argument(
'composer_environment', help='Name of the Cloud Composer environent.')

args = parser.parse_args()
get_client_id(
args.project_id, args.location, args.composer_environment)

最佳答案

在设置的参数前加上“--”。在运行脚本之前,请确保已在您的气流网络服务器中进行身份验证。否则在运行脚本时会出现身份验证错误。

    parser.add_argument('--project_id', help='Your Project ID.')
parser.add_argument(
'--location', help='Region of the Cloud Composer environent.')
parser.add_argument(
'--composer_environment', help='Name of the Cloud Composer environment.')

示例运行命令:

python test.py --project_id=you-project-id-here --location=us-central1 --composer_environment=test-composer

输出:

xxxxx-xxxxxxx.apps.googleusercontent.com

关于python - GCP Cloud Composer : get_client_id. py 错误,需要参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66400667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com