This commit is contained in:
Jensen Yap 2025-06-30 22:06:44 +09:00
parent 7894b18034
commit 21d71a58fd
3 changed files with 37 additions and 25 deletions

View File

@ -27,6 +27,7 @@
- [url, STRING]
- [headers, OBJECT]
- [data, VARIANT]
- [user_id, STRING]
- [secret_name, STRING]
- [is_async, BOOLEAN]
return_type: VARIANT
@ -34,21 +35,21 @@
VOLATILE
sql: |
SELECT
CASE COALESCE(IS_ASYNC, FALSE)
WHEN TRUE
THEN
-- Async execution: run async function then test_requests
_live.redirect_s3_presigned_url(
_live.udf_api_async(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET
) : s3_presigned_url :: STRING
) : data [0][1]
ELSE
-- Default execution: run regular function
_live.udf_api_sync(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET
)
END AS results
CASE COALESCE(IS_ASYNC, FALSE)
WHEN TRUE
THEN
-- Async execution: run async function then test_requests
utils.udf_redirect_s3_presigned_url(
_live.udf_api_async(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME
):s3_presigned_url :: STRING
):data[0][1]
ELSE
-- Default execution: run regular function
_live.udf_api_sync(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME
)
END AS results
- name: {{ schema }}.udf_api
signature:

View File

@ -309,7 +309,7 @@
- name: {{ schema }}.udf_redirect_s3_presigned_url
signature:
- [url, STRING]
return_type: TEXT
return_type: VARIANT
options: |
LANGUAGE PYTHON
RUNTIME_VERSION = '3.10'

View File

@ -1,20 +1,31 @@
{% macro create_s3_express_external_access_integration() %}
{% set sql %}
CREATE OR REPLACE NETWORK RULE live.s3_express_network_rule
{% set use_schema_sql %}
USE SCHEMA live
{% endset %}
{% set network_rule_sql %}
CREATE OR REPLACE NETWORK RULE s3_express_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = (
'*.s3express-use1-az4.us-east-1.amazonaws.com:443',
'*.s3express-use1-az5.us-east-1.amazonaws.com:443',
'*.s3express-use1-az6.us-east-1.amazonaws.com:443'
);
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION live.s3_express_external_access_integration
ALLOWED_NETWORK_RULES = (s3_express_network_rule)
ENABLED = true
;
)
{% endset %}
{% do run_query(sql) %}
{% set external_access_sql %}
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION s3_express_external_access_integration
ALLOWED_NETWORK_RULES = (s3_express_network_rule)
ENABLED = true
{% endset %}
{% do run_query(use_schema_sql) %}
{% do log("Schema context set to live", true) %}
{% do run_query(network_rule_sql) %}
{% do log("Network rule successfully created", true) %}
{% do run_query(external_access_sql) %}
{% do log("External S3 Express access integration successfully created", true) %}
{% endmacro %}