@@ -14,6 +14,13 @@ variable "secret_key" {
14
14
sensitive = true
15
15
}
16
16
17
+ # Randomness for bucket name uniqueness
18
+ resource "random_string" "suffix" {
19
+ length = 8
20
+ special = false
21
+ upper = false
22
+ }
23
+
17
24
# Terraform provider
18
25
terraform {
19
26
required_providers {
@@ -22,7 +29,9 @@ terraform {
22
29
version = " >= 2.8.0"
23
30
}
24
31
}
32
+
25
33
required_version = " >= 0.13"
34
+
26
35
backend "local" {
27
36
path = " state"
28
37
}
@@ -31,15 +40,21 @@ terraform {
31
40
provider "scaleway" {
32
41
zone = " fr-par-1"
33
42
region = " fr-par"
43
+
44
+ access_key = var. access_key
45
+ secret_key = var. secret_key
46
+ project_id = var. project_id
34
47
}
35
48
36
49
# S3 bucket
37
- resource "scaleway_object_bucket" "example_bucket" {
38
- name = " php-s3-output"
50
+ resource "scaleway_object_bucket" "main" {
51
+ name = " php-s3-output-${ random_string . suffix . result } "
52
+ project_id = var. project_id
53
+ region = " fr-par"
39
54
}
40
55
41
56
# Function zip
42
- data "archive_file" "func_archive " {
57
+ data "archive_file" "main " {
43
58
type = " zip"
44
59
source_dir = " ${ path . module } /../function"
45
60
excludes = [" composer.lock" , " function.zip" , " vendor" ]
@@ -48,29 +63,30 @@ data "archive_file" "func_archive" {
48
63
}
49
64
50
65
# Function namespace and function
51
- resource "scaleway_function_namespace" "function_ns " {
66
+ resource "scaleway_function_namespace" "main " {
52
67
project_id = var. project_id
53
68
region = " fr-par"
54
69
name = " php-example-namespace"
55
70
}
56
71
57
- resource "scaleway_function" "php_function " {
72
+ resource "scaleway_function" "main " {
58
73
name = " php-s3-function"
59
74
description = " PHP example working with S3"
60
- namespace_id = scaleway_function_namespace. function_ns . id
75
+ namespace_id = scaleway_function_namespace. main . id
61
76
runtime = " php82"
62
77
handler = " handler.run"
63
78
min_scale = 0
64
79
max_scale = 2
65
- zip_file = data. archive_file . func_archive . output_path
66
- zip_hash = data. archive_file . func_archive . output_sha
80
+ zip_file = data. archive_file . main . output_path
81
+ zip_hash = data. archive_file . main . output_sha
67
82
privacy = " public"
68
83
deploy = true
84
+ memory_limit = 512
69
85
70
86
environment_variables = {
71
87
" S3_ENDPOINT" = " https://s3.fr-par.scw.cloud"
72
88
" S3_REGION" = " fr-par"
73
- " S3_BUCKET" = scaleway_object_bucket.example_bucket .name
89
+ " S3_BUCKET" = scaleway_object_bucket.main .name
74
90
}
75
91
76
92
secret_environment_variables = {
@@ -84,12 +100,6 @@ resource "scaleway_function" "php_function" {
84
100
}
85
101
}
86
102
87
- # Template script to curl
88
- resource local_file curl_script {
89
- filename = " ../curl.sh"
90
- content = templatefile (
91
- " curl.tftpl" , {
92
- func_url = " ${ scaleway_function . php_function . domain_name } " ,
93
- }
94
- )
103
+ output function_url {
104
+ value = scaleway_function. main . domain_name
95
105
}
0 commit comments