Deploy Functionbeat to your cloud provider
editDeploy Functionbeat to your cloud provider
editAfter configuring Functionbeat and defining cloud functions for the services you want to monitor, deploy the functions to your cloud provider. To do this, you can use the Functionbeat manager (good for getting started), or use your own deployment infrastructure.
Use the Functionbeat manager
editUse the built-in manager to deploy, update, or delete Functionbeat functions when you don’t have your own deployment infrastructure or process in place.
During deployment, the Functionbeat manager:
-
Exports a function template to use for deployment. For AWS, it exports an
AWS CloudFormation template. For Google Cloud, it exports a YAML configuration
file. To inspect the template, run the
export
command. -
Creates a zip package that includes the function code and
functionbeat.yml
config file. - Uploads the package to the specified cloud provider.
See Step 4: Deploy Functionbeat in the getting started to learn how to deploy functions by using the Functionbeat manager.
Use your own deployment infrastructure
editIf you don’t want to use the Functionbeat manager, use your own deployment infrastructure. To do this, create a package, then deploy it to your cloud provider:
-
Set the following environment variables:
-
BEAT_STRICT_PERMS=false
- This setting makes the function skip the ownership check on the configuration file.
-
ENABLED_FUNCTIONS=function-name-1,function-name-2
-
Specifies a comma-separated list of functions that are enabled in the configuration file. For example, to package functions called
my-kinesis
andmy-cloudwatch-logs
, run:linux and mac:
export BEAT_STRICT_PERMS=false export ENABLED_FUNCTIONS=my-kinesis,my-cloudwatch-logs
win:
set BEAT_STRICT_PERMS=false set ENABLED_FUNCTIONS=my-kinesis,my-cloudwatch-logs
For easier management, we recommend having one Lambda per function.
-
-
Run the
package
command to package the functions and dependencies into an archive. For example:linux and mac:
./functionbeat -v -e -d "*" package --output /path/to/folder/package-{{.Provider}}.zip
win:
.\functionbeat.exe -v -e -d "*" package --output /path/to/folder/package-{{.Provider}}.zip
For
--output
specify a full path pattern.The
package
command generates deployment packages for each provider specified in the configuration. Each package contains:- a binary with the function code
-
the
functionbeat.yml
config file
-
If certificates are required, add the cert files to the zip package under the
same path as the configured
functionbeat.yml
file. -
Export a function template to use for deployment:
linux and mac:
./functionbeat export function FUNCTION_NAME
win:
.\functionbeat.exe export function FUNCTION_NAME
Functionbeat writes the template to stdout. For AWS functions, it writes an AWS CloudFormation tempalte. For Google Cloud, it writes a YAML configuration file.
- Modify the template to work with your infrastructure.
-
Deploy the package, using the infrastructure and automation supported by your cloud provider, for example, AWS CloudFormation or Google Cloud Deployment manager.
For more information about deployment, see your cloud provider’s documentation.