Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't deploy project zoom-recording-ingester #119

Open
newgate1999 opened this issue Mar 4, 2021 · 10 comments
Open

Can't deploy project zoom-recording-ingester #119

newgate1999 opened this issue Mar 4, 2021 · 10 comments

Comments

@newgate1999
Copy link

Dear all,
I'm try to deploy project to my server but it's not working.
The log server:

uploading schedule-update to s3://schoolonair-bbb/zoom-upload/schedule-update.zip
est: Stacks[?Name=='zoom-upload'].VpcId
stacks: {'Stacks': [], 'ResponseMetadata': {'RequestId': 'dedb0838-7e31-4e33-bd28-49fb15d4966d', 'HTTPStatusCode': 200, 'HTTPHeaders': {'content-type': 'application/x-amz-json-1.1', 'date': 'Thu, 04 Mar 2021 12:59:35 GMT', 'x-amzn-requestid': 'dedb0838-7e31-4e33-bd28-49fb15d4966d', 'content-length': '13', 'connection': 'keep-alive'}, 'RetryAttempts': 0}}
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/newgate/Documents/aws/zoom-recording-ingester/cdk/app.py", line 28, in
oc_vpc_id, oc_security_group_id = vpc_components()
File "/home/newgate/Documents/aws/zoom-recording-ingester/cdk/helpers.py", line 31, in vpc_components
vpc_id = jmespath.search(
IndexError: list index out of range
Subprocess exited with error 1

In readme file no detailed instructions on config file env. If possible, can't you give me a video tutorial or more detailed config steps ?

Regard,

@lbjay
Copy link
Member

lbjay commented Mar 4, 2021

Hi,

First off, a disclaimer that we put this project's code on github with a license but don't support or develop it outside of DCE's needs.

The settings in the example .env file have some comments explaining a bit about their use/purpose.

I'm not sure what you mean by deploying the project to your server. Did you try running invoke stack.create?

@newgate1999
Copy link
Author

I'm try to running invoke stack.create. But it looks like the stacks have not been created and response emply array

@nataliemona
Copy link
Contributor

The error you posted:

File "/home/newgate/Documents/aws/zoom-recording-ingester/cdk/helpers.py", line 31, in vpc_components
vpc_id = jmespath.search(
IndexError: list index out of range
Subprocess exited with error 1

Shows that you are missing a VPC for your Opencast cluster. This isn't mentioned in prerequisites but the application does expect that the Opencast cluster has a VPC setup.

@nataliemona
Copy link
Contributor

@newgate1999 Were you able to get it to work?

@newgate1999
Copy link
Author

newgate1999 commented Mar 9, 2021

I tried but it doesn't work. Can you shoot a video setup and deploy code for me to refer ? Thank you so much.

@newgate1999
Copy link
Author

newgate1999 commented Mar 9, 2021

This is my config. can you check it for me ?

# should only be necessary if you have multiple credential profiles
AWS_PROFILE=phamtuananh

# tags that will be assigned to the cfn stack and all resources under it
# space-separated key/value pairs, like so:
# Key=key1,Value=value1 Key=key2,Value=value2
STACK_TAGS=Key=project,Value=MH Key=department,Value=DE

# name of the cfn stack; also used to prefix many resource names (required)
STACK_NAME=zoom-upload

# s3 bucket to store packaged lambda code
LAMBDA_CODE_BUCKET=schoolonair-bbb

# where cloudwatch alarm notifications will get sent
[email protected]

# Email address associated with a Zoom administrative level account
# This is used to get a token to authenticate downloads
[email protected]

ZOOM_API_BASE_URL=
# Either a zoom api key/secret or an apigee key. If both are present then
# apigee will be prefered.
ZOOM_API_KEY=*****************
ZOOM_API_SECRET=************************
APIGEE_KEY=

# URL and API auth for the target opencast cluster
OC_CLUSTER_NAME=test-s3
OPENCAST_API_USER=admin
OPENCAST_API_PASSWORD=opencast

# id of series to receive ingests in the absence of a zoom meeting -> series mapping
# this is meant for testing/dev only. If you set this to a valid Opencast series id
# then any recording that doesn't match something in the class schedule data will
# be ingested into that default series id.
DEFAULT_SERIES_ID=

# Opencast 5.x:
#     publisher = producer username or email
#     no contributor
# When the publisher of a series cannot be determined via an
# /otherpubs/epidodedefault lookup, the Opencast workflow notifications will go
# to this address. If this is left empty the notifications will go to the
# NOTIFICATION_EMAIL address.
DEFAULT_PUBLISHER=admin
# These settings will override the Opencast lookup of publisher and contributor
# for a series.
OVERRIDE_PUBLISHER=admin
OVERRIDE_CONTRIBUTOR=admin

# 5x clusters: "dce-int-production-zoom" / "multipart/chunked+source"
OC_WORKFLOW=dce-int-production-zoom
OC_FLAVOR=multipart/chunked+source

# controls how many download queue messages will be processed (not ingested!) per
# invocation of the downloader function
DOWNLOAD_MESSAGES_PER_INVOCATION=10

# controls how far in minutes the schedule matching will allow for start/end times
BUFFER_MINUTES=30

# videos shorter than this many minutes will be ignored
MINIMUM_DURATION=2

# Python pytz timezone
LOCAL_TIME_ZONE=US/Eastern

LOG_NOTIFICATIONS_FILTER_LOG_LEVEL=ERROR

# Password for the opencast mysql root user
# You can get this from the cluster config of the cluster being ingested to
# The invoke tasks will find the actual RDS endpoint via an aws lookup
OC_DB_PASSWORD=opencast

# the uploader will query opencast for the number of currently running track uploads
# if it is greater than this number the uploader will abort (leaving the upload in the queue)
OC_TRACK_UPLOAD_MAX=5

# These (comma-separated) IPs will be included in the APIs resource policy
# Only requests coming from these IPs will be allowed to exec the on-demand ingest endpoint
# Assuming the Opsworks cluster is up-to-date, these should be the same ips listed
# in the cluster config's "vpn_ips" list.
INGEST_ALLOWED_IPS=

# Google sheets
# The document id
GSHEETS_DOC_ID =
# The name of the actual tab to download as a csv
GSHEETS_SHEET_NAME=

@nataliemona
Copy link
Contributor

nataliemona commented Mar 10, 2021

It looks like you might be missing the ZOOM_API_BASE_URL= value, the gsheets values, and the ingest allowed ips?
I don't currently have time to record a tutorial video, but I'm happy to help point you in the right direction if you can show me a specific error.

@newgate1999
Copy link
Author

newgate1999 commented Mar 11, 2021

Thanks nataliemona.
I am having an error in the opencast server cluster. I don't know how to install and pass opencast related parameters to .env file. OC_CLUSTER_NAME=?, OC_WORKFLOW = ?, OC_FLAVOR = ?. My cluster name does not exist. It looks like besides installing opencast I have to install project https://github.com/harvard-dce/mh-opsworks ,right?

@nataliemona
Copy link
Contributor

It might make more sense for you to fork the project and then adapt it to work with whatever Opencast setup you have.

@Srinivasysr2003
Copy link

I am getting error as below and I have private subnet in which opencast has created.
jsii.errors.JSIIError: Not possible to place Lambda Functions in a Public subnet
Subprocess exited with error 1

function def vpc_components(): trying to consider only VPC ID and Security Group. Where is mentioned to provided subnet group id?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants