Comments (8)
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.
@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.
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.
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.
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.
@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.
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.
This serverless plugin also solved my issue; was less implementation effort. https://www.npmjs.com/package/serverless-s3-sync
from examples.
Related Issues (20)
- [New example request] Layer created by the user
- [BUG] node Express.js API with DynamoDB starter project fails at first deploy HOT 6
- API Gateway sage maker end point
- Value not found at "self" source HOT 8
- Serverless framework with Node ES6 modules HOT 1
- What's the difference between two examples
- Do i have to comment these three lines before i deploy to aws? HOT 1
- aws-python-flask-api - Internal Server Error
- [New example request] AWS Python FastAPI
- [Updated Example] DynamoDB + Typescript + Node v18 HOT 1
- [aws-node-puppeteer] Example missing information HOT 1
- Unsupported template aws-node-http-api-typescript HOT 3
- [aws-node-puppeteer] supports only the Node.js 6.10 or 8.10 runtimes HOT 1
- Trying to invoke the hello function locally for template aws-node-http-api fails using documentation HOT 1
- Wrong serverless-http dependency version in the basic express template HOT 1
- Error running npm start - aws-node-typescript-nest
- The Serverless version (1.26.1) does not satisfy the "frameworkVersion" (3) in serverless.yml
- All AWS Golang examples need to be updated
- Error: The "serverless-plugin-chrome" plugin only supports the Node.js 6.10 or 8.10 runtimes. Your service is using the "nodejs18.x" provider. HOT 2
- serverless-dynamodb-local examples need updating
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from examples.