I'm trying to use functionbeat for my first time, with a single function, of type kinesis, using functionbeat v6.8.13.
When I run 'functionbeat deploy kinesis' (where 'kinesis' is the name i chose for the function name), I get an error "'enterprise-elk-dev-s3bucket' already exist and you don't have permission to access it
Fail to deploy 1 function(s)"
However, I can list, put, and rm objects in the bucket named above using the 'aws s3' cli. Any ideas what is wrong?
Here's the contents of my functionbeat.yml:
functionbeat.provider.aws.deploy_bucket: "enterprise-elk-dev-s3bucket"
functionbeat.provider.aws.functions:
- name: kinesis
enabled: true
type: kinesis
description: "lambda function for Kinesis events"
triggers:- event_source_arn: arn:aws:kinesis:us-east-1:xxxxxxxxxxxx:stream/kinesis-stream-for-elk
name: lambda2kinesis2es
setup.kibana:
output.elasticsearch:
hosts: ["https://elkdev-ingest.nml.com:443"]
username: "elastic"
password: "${ES_PWD}"
ssl:
verification_mode: "none"
processors:
- event_source_arn: arn:aws:kinesis:us-east-1:xxxxxxxxxxxx:stream/kinesis-stream-for-elk
- add_host_metadata: ~
- add_cloud_metadata: ~
And here is the command I tried, it's output, and some more commands that show that the computer from which I ran the command, has permission to put files in the bucket:
./functionbeat -e deploy kinesis
2021-01-11T20:40:01.053Z INFO instance/beat.go:611 Home path: [/home/azscomp/functionbeat-6.8.13-linux-x86_64] Config path: [/home/azscomp/functionbeat-6.8.13-linux-x86_64] Data path: [/home/azscomp/functionbeat-6.8.13-linux-x86_64/data] Logs path: [/home/azscomp/functionbeat-6.8.13-linux-x86_64/logs]
2021-01-11T20:40:01.053Z INFO instance/beat.go:618 Beat UUID: f331a229-6c10-45b2-82c4-068775f0e363
Function: kinesis, could not deploy, error: bucket 'enterprise-elk-dev-s3bucket' already exist and you don't have permission to access it
Fail to deploy 1 function(s)
aws s3 ls s3://enterprise-elk-dev-s3bucket
/usr/lib/python2.7/site-packages/awscli/customizations/cloudfront.py:17: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
from cryptography.hazmat.primitives import serialization, hashes
aws s3 cp package.zip s3://enterprise-elk-dev-s3bucket/package.zip
/usr/lib/python2.7/site-packages/awscli/customizations/cloudfront.py:17: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
from cryptography.hazmat.primitives import serialization, hashes
upload: ./package.zip to s3://enterprise-elk-dev-s3bucket/package.zip
aws s3 ls s3://enterprise-elk-dev-s3bucket
/usr/lib/python2.7/site-packages/awscli/customizations/cloudfront.py:17: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
from cryptography.hazmat.primitives import serialization, hashes
2021-01-11 20:40:30 15263071 package.zip
aws s3 rm s3://enterprise-elk-dev-s3bucket/package.zip
/usr/lib/python2.7/site-packages/awscli/customizations/cloudfront.py:17: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
from cryptography.hazmat.primitives import serialization, hashes
delete: s3://enterprise-elk-dev-s3bucket/package.zip
So, any idea why I can't put objects in the s3 bucket? Also, I tried modifying the name of the bucket in the functionbeat.yml to a nonexistent bucket, and then rerunning the functionbeat setup command, and it fails with the same error, which says that the bucket exists, but in this test, the bucket did not exist. So, I don't know that the error output can be trusted.