我正在使用 Redshift 计划查询来运行 UNLOAD 命令。如果查询失败,我希望收到通知。我启用了 SNS,但无论作业成功还是失败,消息都是相同的。如何仅在作业失败时收到通知?
更新:我可以使用以下命令获得带有错误消息的响应。如何设置 CloudWatch 或其他一些服务来监控此情况并发送通知?
aws redshift-data describe-statement --id {id} --region us-west-2
logging amazon-web-services amazon-sns amazon-cloudwatch amazon-redshift
我的文件夹结构如下:
Project/
--Pipeline.py
--setup.py
--dist/
--ResumeParserDependencies-0.1.tar.gz
--Dependencies/
--Module1.py
--Module2.py
--Module3.py
Run Code Online (Sandbox Code Playgroud)
我的setup.py文件看起来像这样:
from setuptools import setup, find_packages
setup(name='ResumeParserDependencies',
version='0.1',
description='Dependencies',
install_requires=[
'google-cloud-storage==1.11.0',
'requests==2.19.1',
'urllib3==1.23'
],
packages = ['Dependencies']
)
Run Code Online (Sandbox Code Playgroud)
我使用 setup.py 文件使用“python setup.py sdist”创建了一个 tar.gz 文件。tar 文件位于 dist 文件夹中,名为 ResumeParserDependencies-0.1.tar.gz。然后我指定
setup_options.extra_packages = ['./dist/ResumeParserDependencies-0.1.tar.gz'] in my pipeline options.
Run Code Online (Sandbox Code Playgroud)
但是,一旦我在 Dataflow 上运行我的管道,我就会收到错误“没有名为 ResumeParserDependencies 的模块”。如果我在本地使用“pip install ResumeParserDependencies-0.1.tar.gz”,则会安装该软件包,并且我可以使用“pip freeze”看到它。
将包加载到 Dataflow 中我缺少什么?
我有一个使用端点的 App Engine 部署。发送请求后,我的过程似乎成功完成。但是,当我检查日志时,我看到以下错误:
direct send of check request failed
<module 'endpoints_management.control.check_request' from
'/base/data/home/apps/s~[PROJECT]/20181214t082133.414677408142968625/endpoints_management/control/check_request.py'>
Run Code Online (Sandbox Code Playgroud)
和
failed to flush report_req <ServicecontrolServicesReportRequest
(/base/data/home/apps/s~[PROJECT]/20181214t082133.414677408142968625/endpoints_management/control/client.py:472)
Run Code Online (Sandbox Code Playgroud)
两者都有以下错误代码:
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这些错误?是否有需要额外权限的默认服务帐户?
google-app-engine python-2.7 google-cloud-endpoints google-cloud-platform
我有一个工作数据流管道,第一次运行setup.py以安装一些本地帮助程序模块。我现在想使用 Cloud Composer/Apache Airflow 来调度管道。我已经创建了 DAG 文件,并将其与管道项目一起放置在指定的 Google Storage DAG 文件夹中。文件夹结构如下所示:
{Composer-Bucket}/
dags/
--DAG.py
Pipeline-Project/
--Pipeline.py
--setup.py
Module1/
--__init__.py
Module2/
--__init__.py
Module3/
--__init__.py
Run Code Online (Sandbox Code Playgroud)
我的 DAG 中指定 setup.py 文件的部分如下所示:
resumeparserop = dataflow_operator.DataFlowPythonOperator(
task_id="resumeparsertask",
py_file="gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/Pipeline.py",
dataflow_default_options={
"project": {PROJECT-NAME},
"setup_file": "gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/setup.py"})
Run Code Online (Sandbox Code Playgroud)
但是,当我查看 Airflow Web UI 中的日志时,出现错误:
RuntimeError: The file gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/setup.py cannot be found. It was specified in the --setup_file command line option.
Run Code Online (Sandbox Code Playgroud)
我不确定为什么找不到安装文件。如何使用设置文件/模块运行我的数据流管道?
python-2.7 google-cloud-dataflow airflow google-cloud-composer