Skip to content

Commit a28b1e5

Browse files
committed
add AwsLambdaApi.createFunction
1 parent d069f40 commit a28b1e5

File tree

6 files changed

+44
-17
lines changed

6 files changed

+44
-17
lines changed

AwsClientStatefulStub.test.scala

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,14 +1414,14 @@ class AwsClientStatefulStubSpec extends TestSuite {
14141414
awsClientStub.dynamoDb.unpickle(pickledTables)
14151415
assert(
14161416
getItemFromTable(
1417-
"arn:aws:dynamodb:us-east-1:694389950650:table/accounts-alpha",
1417+
"arn:aws:dynamodb:us-east-1:000000000000:table/foo",
14181418
"accountId" -> "8bc0fb64-e0e7-40E1-998a-eadb561809f2"
14191419
).isDefined
14201420
)
14211421
}
14221422

14231423
def pickledTables = """|{
1424-
| "arn:aws:dynamodb:us-east-1:694389950650:table/accounts-alpha": {
1424+
| "arn:aws:dynamodb:us-east-1:000000000000:table/foo": {
14251425
| "indexes": [
14261426
| {
14271427
| "indexName": "zeroHashParticipantCode-index",
@@ -1505,7 +1505,7 @@ class AwsClientStatefulStubSpec extends TestSuite {
15051505
| "accountId"
15061506
| ]
15071507
| },
1508-
| "arn:aws:dynamodb:us-east-1:694389950650:table/authorizations-alpha": {
1508+
| "arn:aws:dynamodb:us-east-1:000000000000:table/authorizations": {
15091509
| "items": [
15101510
| [
15111511
| {
@@ -1523,7 +1523,7 @@ class AwsClientStatefulStubSpec extends TestSuite {
15231523
| "phoneNumber"
15241524
| ]
15251525
| },
1526-
| "arn:aws:dynamodb:us-east-1:694389950650:table/interbankExchangeRates-alpha": {
1526+
| "arn:aws:dynamodb:us-east-1:000000000000:table/interbankExchangeRates": {
15271527
| "items": [
15281528
| [
15291529
| {
@@ -1546,13 +1546,13 @@ class AwsClientStatefulStubSpec extends TestSuite {
15461546
| "currency"
15471547
| ]
15481548
| },
1549-
| "arn:aws:dynamodb:us-east-1:694389950650:table/messages-alpha": {
1549+
| "arn:aws:dynamodb:us-east-1:000000000000:table/messages": {
15501550
| "items": [],
15511551
| "keySchema": [
15521552
| "messageId"
15531553
| ]
15541554
| },
1555-
| "arn:aws:dynamodb:us-east-1:694389950650:table/parameters-alpha": {
1555+
| "arn:aws:dynamodb:us-east-1:000000000000:table/parameters": {
15561556
| "items": [
15571557
| [
15581558
| {
@@ -1607,7 +1607,7 @@ class AwsClientStatefulStubSpec extends TestSuite {
16071607
| "parameter"
16081608
| ]
16091609
| },
1610-
| "arn:aws:dynamodb:us-east-1:694389950650:table/payments-alpha": {
1610+
| "arn:aws:dynamodb:us-east-1:000000000000:table/payments": {
16111611
| "indexes": [
16121612
| {
16131613
| "indexName": "providerTransactionId-index",
@@ -1879,14 +1879,14 @@ class AwsClientStatefulStubSpec extends TestSuite {
18791879
| "paymentId"
18801880
| ]
18811881
| },
1882-
| "arn:aws:dynamodb:us-east-1:694389950650:table/receiverBlacklist-alpha": {
1882+
| "arn:aws:dynamodb:us-east-1:000000000000:table/receiverBlacklist": {
18831883
| "items": [],
18841884
| "keySchema": [
18851885
| "fullName",
18861886
| "lastName"
18871887
| ]
18881888
| },
1889-
| "arn:aws:dynamodb:us-east-1:694389950650:table/receivers-alpha": {
1889+
| "arn:aws:dynamodb:us-east-1:000000000000:table/receivers": {
18901890
| "items": [
18911891
| [
18921892
| {
@@ -1911,7 +1911,7 @@ class AwsClientStatefulStubSpec extends TestSuite {
19111911
| "phoneNumber"
19121912
| ]
19131913
| },
1914-
| "arn:aws:dynamodb:us-east-1:694389950650:table/sessions-alpha": {
1914+
| "arn:aws:dynamodb:us-east-1:000000000000:table/sessions": {
19151915
| "items": [
19161916
| [
19171917
| {
@@ -1943,7 +1943,7 @@ class AwsClientStatefulStubSpec extends TestSuite {
19431943
| "tokenHash"
19441944
| ]
19451945
| },
1946-
| "arn:aws:dynamodb:us-east-1:694389950650:table/verifications-alpha": {
1946+
| "arn:aws:dynamodb:us-east-1:000000000000:table/verifications": {
19471947
| "items": [
19481948
| [
19491949
| {

AwsLambdaApi.scala

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,32 @@ import scala.jdk.CollectionConverters.*
77

88
object AwsLambdaApi {
99

10+
/** Creates a Lambda function */
11+
inline def createFunction(
12+
name: String,
13+
architecture: Architecture,
14+
awsRuntime: Runtime,
15+
handler: String,
16+
role: String,
17+
code: FunctionCode
18+
)(using
19+
aws: AwsClient
20+
): CreateFunctionResponse =
21+
AwsClient.invoke(s"createFunction") {
22+
aws.lambda
23+
.createFunction(
24+
CreateFunctionRequest
25+
.builder()
26+
.functionName(name)
27+
.architectures(architecture)
28+
.runtime(awsRuntime)
29+
.role(role)
30+
.code(code)
31+
.handler(handler)
32+
.build()
33+
)
34+
}
35+
1036
/** Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously.
1137
* By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a
1238
* function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for

AwsLambdaApi.test.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.encalmo.aws
22

33
import org.encalmo.aws.AwsLambdaApi.*
44

5+
import software.amazon.awssdk.core.SdkBytes
56
import software.amazon.awssdk.services.lambda.model.InvocationType
67

78
class AwsLambdaApiSpec extends TestSuite {

TestSuite.test.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class TestSuite extends munit.FunSuite {
1313
final val debugModeProperties = Map("AWS_CLIENT_DEBUG_MODE" -> "ON")
1414

1515
final lazy val localAwsSecurityCredentials: Map[String, String] =
16-
SetupAwsCredentials("encalmo-sandbox", verbose = true)
16+
SetupAwsCredentials("encalmo-sandbox")
1717
.map(_.toEnvironmentVariables)
1818
.getOrElse(Map.empty)
1919

scripts/computeNewVersion.sc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// the git tags having a given prefix
66
//----------------------------------------
77

8-
//> using scala 3.5.2
8+
//> using scala 3.6.3
99
//> using jvm 21
1010
//> using toolkit 0.7.0
1111

scripts/createReleaseBundle.sc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env -S scala-cli shebang --quiet
22

3-
//> using scala 3.5.2
3+
//> using scala 3.6.3
44
//> using jvm 21
55
//> using toolkit 0.7.0
66

@@ -53,15 +53,15 @@ println(s"${GREEN}Found config publish.name=$name publish.organization=$organiza
5353
println(s"${GREEN}Running tests ...${RESET}")
5454

5555
call(
56-
s"scala-cli --power test . --suppress-deprecated-warnings --suppress-experimental-feature-warning --suppress-directives-in-multiple-files-warning --suppress-deprecated-feature-warning"
56+
s"scala --power test . --suppress-deprecated-warnings --suppress-experimental-feature-warning --suppress-directives-in-multiple-files-warning --suppress-deprecated-feature-warning"
5757
).foreach(
5858
println
5959
)
6060

6161
println(s"${GREEN}Publishing package locally ...${RESET}")
6262

6363
val command =
64-
s"""scala-cli --power publish local . --organization $organization --name $name --project-version $version $signer --suppress-deprecated-warnings --suppress-experimental-feature-warning --suppress-directives-in-multiple-files-warning --suppress-deprecated-feature-warning"""
64+
s"""scala --power publish local . --organization $organization --name $name --project-version $version $signer --suppress-deprecated-warnings --suppress-experimental-feature-warning --suppress-directives-in-multiple-files-warning --suppress-deprecated-feature-warning"""
6565

6666
val (publishedFolder, coordinates) = {
6767
val ivyLocation = call(command).last.trim()
@@ -105,7 +105,7 @@ println(s"${GREEN}Bundle archive ready at $bundleFilePath${RESET}")
105105
def call(command: String, cwd: os.Path = os.pwd): Seq[String] =
106106
println(s"${BLUE}command: ${command}${RESET}")
107107
val commandArray = command.split(" ")
108-
val commandResult = os.proc(commandArray).call(check = false, cwd = cwd)
108+
val commandResult = os.proc(commandArray).call(check = false, cwd = cwd, mergeErrIntoOut = true)
109109
if (commandResult.exitCode != 0)
110110
then {
111111
println(

0 commit comments

Comments
 (0)