Search…
⌃K
Links

Cloud Resources

How to add and use cloud resources
Sometimes, pieces of an application are created and managed externally (cloud native resources like AWS ECS Tasks or Lambdas, for example). You can add these resources to ReleaseHub by adding a couple of tags to each resource (described below).
After tagging a resource, it will show up on the Environment page in the Cloud Resources section, below your Instances, along with buttons to interact with that resource.
Cloud Resources like this ECS Task are listed on the environment page in a section below Instances. ECS Tasks support Terminal and Logs, which you launch by clicking the corresponding button.

Initial Support for AWS ECS Tasks

The first supported cloud resources are AWS ECS Tasks. Let us know what cloud resources you’d like to see supported!

Interacting with Cloud Resources

Once you've tagged them, ECS Tasks currently support a couple of actions: Terminal and Logs (note the Terminal and Logs buttons in the previous screenshot).
You can launch a web terminal into the task containers by clicking the Terminal button:
A web terminal for an ECS cloud resource
And you can view container logs by clicking the Logs button:
Logs for an ECS cloud resource

How to add Cloud Resources

You can add Cloud Resources to your ReleaseHub environments by adding a couple of tags/labels to that resource in AWS or GCP.
Two tags with values are required:
Tag Key
Tag Value
Location in UI
Env variable
releasehub.com/app-name
(the app name)
Top of the environment page. In the screenshot below, the app name is example-voting-app
releasehub.com/env-id
(the environment handle)
In the screenshot below, the environment handle is ted3bff.
Follow the AWS Documentation on tagging ECS resources to add these tags.

How to configure the logs

In order to send your ECS task logs to the ReleaseHub log viewer, you must configure your ECS tasks to use the awslogs log driver. Follow these AWS docs to configure your containers to use the awslogs driver: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html#specify-log-config
The logDriver must be awslogs, but you may choose your own group and stream-prefix.
Your container definitions section of your Task Definition should have a logConfiguration similar to this when you’re done:
{
"containerDefinitions": [
{
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "firelens-container",
"awslogs-region": "us-west-2",
"awslogs-create-group": "true",
"awslogs-stream-prefix": "firelens"
}
}
}
]
}

How to configure the terminal

The following requirements must be met before being able to terminal into any ECS Task:
  • ECS Exec needs to be enabled for the Task. (more info)
  • ECS Exec IAM permissions need to be added for the Task. (more info)
For more details, check out the AWS documentation on enabling ECS Exec and the best practices around it: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
After configuring the ECS Task, use the Cloud Resource refresh button and you should be able to choose the container to terminal into. Note that ReleaseHub will gray out the terminal button for containers that are not running or Tasks that do not have ECS Exec enabled.