pushkin-consortium / pushkin

A customizable, scalable ecosystem for massive online psychological experiments
https://pushkin-consortium.github.io/pushkin/
MIT License
24 stars 11 forks source link

Pushkin AWS init: command failed #242

Open ellissc opened 1 year ago

ellissc commented 1 year ago

I was able to get a localhost version up and running after fixing a docker issue, but when I tried to deploy the AWS version, I ran into an error:

Error: Command failed: aws cloudfront create-origin-access-control --origin-access-control-config '{"Name":"pushkinOAC","Description":"","SigningProtocol":"sigv4","SigningBehavior":"always","OriginAccessControlOriginType":"s3"}' --profile default

Does this seem like an issue related to AWS updates? Not sure if it's related to https://github.com/pushkin-consortium/pushkin/issues/197#issue-1692741735

Pushkin v3.5.0 Docker engine v24.0.6

Full log (after running puskin prep) :

(base) linclab@LincLabs-Mac-mini pushkin_fa23 % pushkin aws init      
Confirming docker login.
? Which project? new
? Name your project default
Recording project name
Resetting db info
? Provide your AWS profile username that you want to use for managing this project. default
Setting up SSL for load-balancer
Choosing...
? Which SSL certificate would you like to use for your site? *.linclabucmerced.com
Choosing domain name for site
Choosing...
? Which domain would you like to use for your site? linclabucmerced.com
Successfully updated pushkin.yaml with custom domain.
Database security group already exists. Skipping creation.
Handling Main database.
Handling Transaction database.
Publishing images to DockerHub
Building API
#0 building with "desktop-linux" instance using docker driver

#1 [internal] load .dockerignore
#1 transferring context: 73B done
#1 DONE 0.0s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 333B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/node:20.2
#3 ...

#4 [auth] library/node:pull token for registry-1.docker.io
#4 DONE 0.0s

#3 [internal] load metadata for docker.io/library/node:20.2
#3 DONE 0.8s

#5 [1/8] FROM docker.io/library/node:20.2@sha256:14f0471d0478fbb9177d0f9e8c146dc872273dcdcfc7fea93a27ed81fc6b0e96
#5 DONE 0.0s

#6 [internal] load build context
#6 transferring context: 1.28kB done
#6 DONE 0.0s

#7 [2/8] COPY ./src /usr/src/app/src
#7 CACHED

#8 [3/8] COPY .yalc /usr/src/app/.yalc/
#8 CACHED

#9 [4/8] COPY ./package.json ./yarn.lock ./.babelrc ./yalc.lock ./dockerStart.sh /usr/src/app/
#9 CACHED

#10 [5/8] WORKDIR /usr/src/app
#10 CACHED

#11 [6/8] RUN yarn install
#11 CACHED

#12 [7/8] RUN yarn build
#12 CACHED

#13 [8/8] RUN apt-get update && apt-get install -y netcat
#13 CACHED

#14 exporting to image
#14 exporting layers done
#14 writing image sha256:f4e203eb7cbd1ee0f7b293f7f3910f90cd44d9ca05ec04b1fcf276298dbaa9f1 done
#14 naming to docker.io/alincsanderpushkin/api:latest done
#14 DONE 0.0s
Pushing API to DockerHub
Building front-end
Using build-if-changed for  default
Building combined front-end
Checking to see if bucket defaultd12c0e55-1e1f-42fb-b59f-a23799bde9e4 already exists.
Rebuilding AWS-compatible worker for Sentence_Completion
Rebuilding AWS-compatible worker for Noisy_Channel
Rebuilding AWS-compatible worker for wordrelation
Rebuilding AWS-compatible worker for lex
Checking to see if OAC already exists.
No origin access control. Creating.
Bucket does not yet exist. Creating s3 bucket
Unable to create Origin Access Control
node:internal/errors:866
  const err = new Error(message);
              ^

Error: Command failed: aws cloudfront create-origin-access-control --origin-access-control-config '{"Name":"pushkinOAC","Description":"","SigningProtocol":"sigv4","SigningBehavior":"always","OriginAccessControlOriginType":"s3"}' --profile default

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument operation: Invalid choice, valid choices are:

associate-alias                          | create-cache-policy                     
create-cloud-front-origin-access-identity | create-distribution                     
create-distribution-with-tags            | create-field-level-encryption-config    
create-field-level-encryption-profile    | create-function                         
create-invalidation                      | create-key-group                        
create-monitoring-subscription           | create-origin-request-policy            
create-public-key                        | create-realtime-log-config              
create-response-headers-policy           | create-streaming-distribution           
create-streaming-distribution-with-tags  | delete-cache-policy                     
delete-cloud-front-origin-access-identity | delete-distribution                     
delete-field-level-encryption-config     | delete-field-level-encryption-profile   
delete-function                          | delete-key-group                        
delete-monitoring-subscription           | delete-origin-request-policy            
delete-public-key                        | delete-realtime-log-config              
delete-response-headers-policy           | delete-streaming-distribution           
describe-function                        | get-cache-policy                        
get-cache-policy-config                  | get-cloud-front-origin-access-identity  
get-cloud-front-origin-access-identity-config | get-distribution                        
get-distribution-config                  | get-field-level-encryption              
get-field-level-encryption-config        | get-field-level-encryption-profile      
get-field-level-encryption-profile-config | get-function                            
get-invalidation                         | get-key-group                           
get-key-group-config                     | get-monitoring-subscription             
get-origin-request-policy                | get-origin-request-policy-config        
get-public-key                           | get-public-key-config                   
get-realtime-log-config                  | get-response-headers-policy             
get-response-headers-policy-config       | get-streaming-distribution              
get-streaming-distribution-config        | list-cache-policies                     
list-cloud-front-origin-access-identities | list-conflicting-aliases                
list-distributions                       | list-distributions-by-cache-policy-id   
list-distributions-by-key-group          | list-distributions-by-origin-request-policy-id
list-distributions-by-realtime-log-config | list-distributions-by-response-headers-policy-id
list-distributions-by-web-acl-id         | list-field-level-encryption-configs     
list-field-level-encryption-profiles     | list-functions                          
list-invalidations                       | list-key-groups                         
list-origin-request-policies             | list-public-keys                        
list-realtime-log-configs                | list-response-headers-policies          
list-streaming-distributions             | list-tags-for-resource                  
publish-function                         | tag-resource                            
test-function                            | untag-resource                          
update-cache-policy                      | update-cloud-front-origin-access-identity
update-distribution                      | update-field-level-encryption-config    
update-field-level-encryption-profile    | update-function                         
update-key-group                         | update-origin-request-policy            
update-public-key                        | update-realtime-log-config              
update-response-headers-policy           | update-streaming-distribution           
sign                                     | wait                                    
help                                    

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {
  code: 252,
  killed: false,
  signal: null,
  cmd: `aws cloudfront create-origin-access-control --origin-access-control-config '{"Name":"pushkinOAC","Description":"","SigningProtocol":"sigv4","SigningBehavior":"always","OriginAccessControlOriginType":"s3"}' --profile default`,
  stdout: '',
  stderr: '\n' +
    'usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]\n' +
    'To see help text, you can run:\n' +
    '\n' +
    '  aws help\n' +
    '  aws <command> help\n' +
    '  aws <command> <subcommand> help\n' +
    '\n' +
    'aws: error: argument operation: Invalid choice, valid choices are:\n' +
    '\n' +
    'associate-alias                          | create-cache-policy                     \n' +
    'create-cloud-front-origin-access-identity | create-distribution                     \n' +
    'create-distribution-with-tags            | create-field-level-encryption-config    \n' +
    'create-field-level-encryption-profile    | create-function                         \n' +
    'create-invalidation                      | create-key-group                        \n' +
    'create-monitoring-subscription           | create-origin-request-policy            \n' +
    'create-public-key                        | create-realtime-log-config              \n' +
    'create-response-headers-policy           | create-streaming-distribution           \n' +
    'create-streaming-distribution-with-tags  | delete-cache-policy                     \n' +
    'delete-cloud-front-origin-access-identity | delete-distribution                     \n' +
    'delete-field-level-encryption-config     | delete-field-level-encryption-profile   \n' +
    'delete-function                          | delete-key-group                        \n' +
    'delete-monitoring-subscription           | delete-origin-request-policy            \n' +
    'delete-public-key                        | delete-realtime-log-config              \n' +
    'delete-response-headers-policy           | delete-streaming-distribution           \n' +
    'describe-function                        | get-cache-policy                        \n' +
    'get-cache-policy-config                  | get-cloud-front-origin-access-identity  \n' +
    'get-cloud-front-origin-access-identity-config | get-distribution                        \n' +
    'get-distribution-config                  | get-field-level-encryption              \n' +
    'get-field-level-encryption-config        | get-field-level-encryption-profile      \n' +
    'get-field-level-encryption-profile-config | get-function                            \n' +
    'get-invalidation                         | get-key-group                           \n' +
    'get-key-group-config                     | get-monitoring-subscription             \n' +
    'get-origin-request-policy                | get-origin-request-policy-config        \n' +
    'get-public-key                           | get-public-key-config                   \n' +
    'get-realtime-log-config                  | get-response-headers-policy             \n' +
    'get-response-headers-policy-config       | get-streaming-distribution              \n' +
    'get-streaming-distribution-config        | list-cache-policies                     \n' +
    'list-cloud-front-origin-access-identities | list-conflicting-aliases                \n' +
    'list-distributions                       | list-distributions-by-cache-policy-id   \n' +
    'list-distributions-by-key-group          | list-distributions-by-origin-request-policy-id\n' +
    'list-distributions-by-realtime-log-config | list-distributions-by-response-headers-policy-id\n' +
    'list-distributions-by-web-acl-id         | list-field-level-encryption-configs     \n' +
    'list-field-level-encryption-profiles     | list-functions                          \n' +
    'list-invalidations                       | list-key-groups                         \n' +
    'list-origin-request-policies             | list-public-keys                        \n' +
    'list-realtime-log-configs                | list-response-headers-policies          \n' +
    'list-streaming-distributions             | list-tags-for-resource                  \n' +
    'publish-function                         | tag-resource                            \n' +
    'test-function                            | untag-resource                          \n' +
    'update-cache-policy                      | update-cloud-front-origin-access-identity\n' +
    'update-distribution                      | update-field-level-encryption-config    \n' +
    'update-field-level-encryption-profile    | update-function                         \n' +
    'update-key-group                         | update-origin-request-policy            \n' +
    'update-public-key                        | update-realtime-log-config              \n' +
    'update-response-headers-policy           | update-streaming-distribution           \n' +
    'sign                                     | wait                                    \n' +
    'help                                    \n' +
    '\n'
}

Node.js v20.8.0
(base) linclab@LincLabs-Mac-mini pushkin_fa23 % pushkin aws armageddon
? This command will delete more or less EVERYTHING on your AWS account.
 This cannot be undone.
 Are you SURE you want to do this?
 Confirm by typing 'armageddon'. armageddon
? Your database -- along with any data -- will be deleted.
 Confirm this is what you want by typing 'nuke my data'. nuke my data
I hope you know what you are doing. This makes me nervous every time...
? Provide your AWS profile username that you want to use for managing this project. default
Deleting cloudformation stacks
Before deleting security groups, wait for DBs to be completed deleted
Updating awsResources.js
Deleting resource records for linclabucmerced.com
Deleted stack: true
No cloudfront distributions found. Skipping.
Removing deletion protection from databases defaultmain,defaulttransaction,labwebsitefa23main.
Deleting databases
Checking database defaultmain for deletion protection
Checking database defaulttransaction for deletion protection
Checking database labwebsitefa23main for deletion protection
Waiting for DBs to be deleted...
Deleting database labwebsitefa23main
Deleting database defaulttransaction
Deleting database defaultmain
Deleting these ECS clusters: 
Stopping ECS services.
Deleting s3 bucket defaultd12c0e55-1e1f-42fb-b59f-a23799bde9e4}
Unable to get list of origin access controls
Error: Command failed: aws cloudfront list-origin-access-controls --profile default

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument operation: Invalid choice, valid choices are:

associate-alias                          | create-cache-policy                     
create-cloud-front-origin-access-identity | create-distribution                     
create-distribution-with-tags            | create-field-level-encryption-config    
create-field-level-encryption-profile    | create-function                         
create-invalidation                      | create-key-group                        
create-monitoring-subscription           | create-origin-request-policy            
create-public-key                        | create-realtime-log-config              
create-response-headers-policy           | create-streaming-distribution           
create-streaming-distribution-with-tags  | delete-cache-policy                     
delete-cloud-front-origin-access-identity | delete-distribution                     
delete-field-level-encryption-config     | delete-field-level-encryption-profile   
delete-function                          | delete-key-group                        
delete-monitoring-subscription           | delete-origin-request-policy            
delete-public-key                        | delete-realtime-log-config              
delete-response-headers-policy           | delete-streaming-distribution           
describe-function                        | get-cache-policy                        
get-cache-policy-config                  | get-cloud-front-origin-access-identity  
get-cloud-front-origin-access-identity-config | get-distribution                        
get-distribution-config                  | get-field-level-encryption              
get-field-level-encryption-config        | get-field-level-encryption-profile      
get-field-level-encryption-profile-config | get-function                            
get-invalidation                         | get-key-group                           
get-key-group-config                     | get-monitoring-subscription             
get-origin-request-policy                | get-origin-request-policy-config        
get-public-key                           | get-public-key-config                   
get-realtime-log-config                  | get-response-headers-policy             
get-response-headers-policy-config       | get-streaming-distribution              
get-streaming-distribution-config        | list-cache-policies                     
list-cloud-front-origin-access-identities | list-conflicting-aliases                
list-distributions                       | list-distributions-by-cache-policy-id   
list-distributions-by-key-group          | list-distributions-by-origin-request-policy-id
list-distributions-by-realtime-log-config | list-distributions-by-response-headers-policy-id
list-distributions-by-web-acl-id         | list-field-level-encryption-configs     
list-field-level-encryption-profiles     | list-functions                          
list-invalidations                       | list-key-groups                         
list-origin-request-policies             | list-public-keys                        
list-realtime-log-configs                | list-response-headers-policies          
list-streaming-distributions             | list-tags-for-resource                  
publish-function                         | tag-resource                            
test-function                            | untag-resource                          
update-cache-policy                      | update-cloud-front-origin-access-identity
update-distribution                      | update-field-level-encryption-config    
update-field-level-encryption-profile    | update-function                         
update-key-group                         | update-origin-request-policy            
update-public-key                        | update-realtime-log-config              
update-response-headers-policy           | update-streaming-distribution           
sign                                     | wait                                    
help                                    

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Socket.<anonymous> (node:internal/child_process:457:11)
    at Socket.emit (node:events:514:28)
    at Pipe.<anonymous> (node:net:337:12) {
  code: 252,
  killed: false,
  signal: null,
  cmd: 'aws cloudfront list-origin-access-controls --profile default',
  stdout: '',
  stderr: '\n' +
    'usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]\n' +
    'To see help text, you can run:\n' +
    '\n' +
    '  aws help\n' +
    '  aws <command> help\n' +
    '  aws <command> <subcommand> help\n' +
    '\n' +
    'aws: error: argument operation: Invalid choice, valid choices are:\n' +
    '\n' +
    'associate-alias                          | create-cache-policy                     \n' +
    'create-cloud-front-origin-access-identity | create-distribution                     \n' +
    'create-distribution-with-tags            | create-field-level-encryption-config    \n' +
    'create-field-level-encryption-profile    | create-function                         \n' +
    'create-invalidation                      | create-key-group                        \n' +
    'create-monitoring-subscription           | create-origin-request-policy            \n' +
    'create-public-key                        | create-realtime-log-config              \n' +
    'create-response-headers-policy           | create-streaming-distribution           \n' +
    'create-streaming-distribution-with-tags  | delete-cache-policy                     \n' +
    'delete-cloud-front-origin-access-identity | delete-distribution                     \n' +
    'delete-field-level-encryption-config     | delete-field-level-encryption-profile   \n' +
    'delete-function                          | delete-key-group                        \n' +
    'delete-monitoring-subscription           | delete-origin-request-policy            \n' +
    'delete-public-key                        | delete-realtime-log-config              \n' +
    'delete-response-headers-policy           | delete-streaming-distribution           \n' +
    'describe-function                        | get-cache-policy                        \n' +
    'get-cache-policy-config                  | get-cloud-front-origin-access-identity  \n' +
    'get-cloud-front-origin-access-identity-config | get-distribution                        \n' +
    'get-distribution-config                  | get-field-level-encryption              \n' +
    'get-field-level-encryption-config        | get-field-level-encryption-profile      \n' +
    'get-field-level-encryption-profile-config | get-function                            \n' +
    'get-invalidation                         | get-key-group                           \n' +
    'get-key-group-config                     | get-monitoring-subscription             \n' +
    'get-origin-request-policy                | get-origin-request-policy-config        \n' +
    'get-public-key                           | get-public-key-config                   \n' +
    'get-realtime-log-config                  | get-response-headers-policy             \n' +
    'get-response-headers-policy-config       | get-streaming-distribution              \n' +
    'get-streaming-distribution-config        | list-cache-policies                     \n' +
    'list-cloud-front-origin-access-identities | list-conflicting-aliases                \n' +
    'list-distributions                       | list-distributions-by-cache-policy-id   \n' +
    'list-distributions-by-key-group          | list-distributions-by-origin-request-policy-id\n' +
    'list-distributions-by-realtime-log-config | list-distributions-by-response-headers-policy-id\n' +
    'list-distributions-by-web-acl-id         | list-field-level-encryption-configs     \n' +
    'list-field-level-encryption-profiles     | list-functions                          \n' +
    'list-invalidations                       | list-key-groups                         \n' +
    'list-origin-request-policies             | list-public-keys                        \n' +
    'list-realtime-log-configs                | list-response-headers-policies          \n' +
    'list-streaming-distributions             | list-tags-for-resource                  \n' +
    'publish-function                         | tag-resource                            \n' +
    'test-function                            | untag-resource                          \n' +
    'update-cache-policy                      | update-cloud-front-origin-access-identity\n' +
    'update-distribution                      | update-field-level-encryption-config    \n' +
    'update-field-level-encryption-profile    | update-function                         \n' +
    'update-key-group                         | update-origin-request-policy            \n' +
    'update-public-key                        | update-realtime-log-config              \n' +
    'update-response-headers-policy           | update-streaming-distribution           \n' +
    'sign                                     | wait                                    \n' +
    'help                                    \n' +
    '\n'
}
(base) linclab@LincLabs-Mac-mini pushkin_fa23 % 
ghost commented 1 year ago

I don't think aws deploy is currently completely working. Again. I'm doing a bunch of traveling right now, but will try to get to this as I can.

ellissc commented 1 year ago

Ok, thank you for the response! I wasn't sure about the status of aws deploy.