Code Monkey home page Code Monkey logo

Comments (8)

timothyjeffcoat avatar timothyjeffcoat commented on May 17, 2024 5

I believe the problem is that syncToS3 is documented as follows:

Hint: The plugin is simply running the AWS CLI command: aws S3 sync app/ s3://yourBucketName123/

When in fact it should be:

Hint: The plugin is simply running the AWS CLI command: aws s3 sync app/ s3://yourBucketName123/

Notice the difference is S3 to s3.

When I ran the command as

aws s3 sync app/ s3://yourBucketName123/

The problem was resolved.

from examples.

horike37 avatar horike37 commented on May 17, 2024

@ghdna
Thank you for opening up!

Which example are using?

The credentials within the serverless.yaml file

Could you show us your all of serverless.yml?
How does you define credentials? You might be wrong how to define.

from examples.

ghdna avatar ghdna commented on May 17, 2024

My AWS credentials are defined as a profile in ~/.aws/credentials file. And I'm referencing these credentials under provider.

provider:
  name: aws
  runtime: nodejs6.10
  profile: myAwsCreds

This works when creating S3 bucket and CloudFront nodes. But when I execute serverless syncToS3, it behaves as if there are no credentials provided. It's ignoring the profile under provider.

from examples.

horike37 avatar horike37 commented on May 17, 2024

@ghdna

Seems that credentials setting is no problem.
Are you using the following sample? if so, I'll try to reproduce your facing problem on my local.
https://github.com/serverless/examples/tree/master/aws-node-single-page-app-via-cloudfront

from examples.

ghdna avatar ghdna commented on May 17, 2024

Yes, I'm using that sample. Try to reproduce it. Make sure you don't have any default credentials defined in your ~/.aws/credentials file and are instead using [profiles].

~/.aws/credentials

[myawscreds]
aws_access_key_id = XXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

from examples.

horike37 avatar horike37 commented on May 17, 2024

@ghdna
I have tried the same sample. However, worked fine on my local.
I guess that you didn't apply IAM action to your credential correctly. I reccomend you will try to use AdministratorAccess role once. If work fine, it specify there is the ploblem in IAM setting.

from examples.

williamsandonz avatar williamsandonz commented on May 17, 2024

This was driving me crazy so posting my solution here. If you are using profiles you may notice that even after running

serverless config credentials --provider aws --key key --secret secret --profile myProfile

serverless deploy works fine but serverless syncToS3 will throw unable to locate credentials error.

Basically syncToS3 is running the AWS command which is looking for your default profile and because the syncDirectory() function in the plugin index.js does not pass the profile through to the command, so to fix it you can just modify this function with the following:

const profile = this.serverless.variables.service.provider.profile;
const args = [
      's3',
      'sync',
      'dist',
      `s3://${s3Bucket}/`,
      '--delete',
      `--profile=${profile}` //Added this line here
    ];

You'll need to do the same in the invalidateCache() function. Also obviously make sure you provider.profile set in your serverless.yml

from examples.

m-torin avatar m-torin commented on May 17, 2024

This serverless plugin also solved my issue; was less implementation effort. https://www.npmjs.com/package/serverless-s3-sync

from examples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.