|
8 | 8 | * XP AWS Lambda |
9 | 9 | * ============= |
10 | 10 | * |
11 | | - * - Store runtime layer as `runtime-X.X.X.zip`, building if necessary: |
| 11 | + * - Run lambda locally: |
12 | 12 | * ```sh |
13 | | - * $ xp lambda runtime |
| 13 | + * $ xp lambda run Greet '{"name":"Test"}' |
14 | 14 | * ``` |
15 | | - * - Rebuild runtime: |
| 15 | + * - Package single file in `function.zip` file for deployment: |
16 | 16 | * ```sh |
17 | | - * $ xp lambda runtime -b |
| 17 | + * $ xp lambda package Greet.class.php |
18 | 18 | * ``` |
19 | | - * - Speficy runtime version, selecting newest PHP 8.0 release: |
| 19 | + * - Package INI file and source directory in `function.zip`: |
20 | 20 | * ```sh |
21 | | - * $ xp lambda runtime:8.0 |
| 21 | + * $ xp lambda package task.ini src/main/php |
22 | 22 | * ``` |
23 | | - * - Test lambda: |
| 23 | + * - Test lambda inside a containerized AWS environment: |
24 | 24 | * ```sh |
25 | 25 | * $ xp lambda test Greet '{"name":"Test"}' |
26 | 26 | * ``` |
27 | 27 | * - Test lambda, pass environment variables: |
28 | 28 | * ```sh |
29 | 29 | * $ xp lambda test -e PROFILE=prod Audit |
30 | 30 | * ``` |
31 | | - * - Package single file in `function.zip` file for deployment: |
| 31 | + * - Store runtime layer as `runtime-X.X.X.zip`, building if necessary: |
32 | 32 | * ```sh |
33 | | - * $ xp lambda package Greet.class.php |
| 33 | + * $ xp lambda runtime |
34 | 34 | * ``` |
35 | | - * - Package INI file and source directory in `function.zip`: |
| 35 | + * - Rebuild runtime: |
36 | 36 | * ```sh |
37 | | - * $ xp lambda package task.ini src/main/php |
| 37 | + * $ xp lambda runtime -b |
| 38 | + * ``` |
| 39 | + * - Speficy runtime version, selecting newest PHP 8.0 release: |
| 40 | + * ```sh |
| 41 | + * $ xp lambda runtime:8.0 |
38 | 42 | * ``` |
39 | | - * The `runtime` and `test` commands require Docker or Podman to be installed! |
| 43 | + * The `test` and `runtime` commands require Docker or Podman to be installed! |
40 | 44 | * Packaging will always include the `vendor` directory automatically. |
41 | 45 | */ |
42 | 46 | class Runner { |
@@ -66,6 +70,7 @@ private static function command(string $name, array $args): object { |
66 | 70 | sscanf($name, "%[^:]:%[^\r]", $command, $version); |
67 | 71 | switch ($command) { |
68 | 72 | case 'package': return new PackageLambda(new Path('function.zip'), new Sources(new Path('.'), [...$args, 'vendor'])); |
| 73 | + case 'run': return new RunLambda($args[0], $args[1] ?? null); |
69 | 74 | case 'runtime': return new CreateRuntime(self::resolve($version), new Path('runtime-%s.zip'), in_array('-b', $args)); |
70 | 75 | case 'test': return new TestLambda(self::resolve($version), new Path('.'), $args); |
71 | 76 | default: return new DisplayError('Unknown command "'.$args[0].'"'); |
|
0 commit comments