Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions src/content/docs/containers/examples/env-vars-and-secrets.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,16 @@ or secrets in the container-related portion of wrangler configuration.

## Using `envVars` on the Container class

Now, let's define a Container using the `envVars` field in the `Container` class:
Now, let's pass the env vars and secrets to our container using the `envVars` field in the `Container` class:

```js
// https://developers.cloudflare.com/workers/runtime-apis/bindings/#importing-env-as-a-global
import { env } from "cloudflare:workers";
export class MyContainer extends Container {
defaultPort = 8080;
sleepAfter = '10s';
envVars = {
ACCOUNT_NAME: env.ACCOUNT_NAME,
defaultPort = 8080;
sleepAfter = "10s";
envVars = {
ACCOUNT_NAME: env.ACCOUNT_NAME,
ACCOUNT_API_KEY: env.SECRET_STORE.ACCOUNT_API_KEY,
CONTAINER_SECRET_KEY: env.CONTAINER_SECRET_KEY,
};
Expand All @@ -116,17 +118,17 @@ We'll assume that we've set additional secrets in the Secret Store.
```js
export class MyContainer extends Container {
defaultPort = 8080;
sleepAfter = '10s';
sleepAfter = "10s";
manualStart = true;
}

export default {
async fetch(request, env) {
if (new URL(request.url).pathname === '/launch-instances') {
let idOne = env.MY_CONTAINER.idFromName('foo');
if (new URL(request.url).pathname === "/launch-instances") {
let idOne = env.MY_CONTAINER.idFromName("foo");
let instanceOne = env.MY_CONTAINER.get(idOne);

let idTwo = env.MY_CONTAINER.idFromName('foo');
let idTwo = env.MY_CONTAINER.idFromName("foo");
let instanceTwo = env.MY_CONTAINER.get(idTwo);

// Each instance gets a different set of environment variables
Expand All @@ -136,20 +138,20 @@ export default {
ACCOUNT_NAME: env.ACCOUNT_NAME + "-1",
ACCOUNT_API_KEY: env.SECRET_STORE.ACCOUNT_API_KEY_ONE,
CONTAINER_SECRET_KEY: env.CONTAINER_SECRET_KEY_TWO,
}
)
},
});

await instanceTwo.start({
envVars: {
ACCOUNT_NAME: env.ACCOUNT_NAME + "-2",
ACCOUNT_API_KEY: env.SECRET_STORE.ACCOUNT_API_KEY_TWO,
CONTAINER_SECRET_KEY: env.CONTAINER_SECRET_KEY_TWO,
}
)
return new Response('Container instances launched');
},
});
return new Response("Container instances launched");
}

// ... etc ...
}
}
},
};
```