Cria uma função do Function Compute 3.0.
Sintaxe
{
"Type": "ALIYUN::FC3::Function",
"Properties": {
"FunctionName": String,
"Handler": String,
"Runtime": String,
"Cpu": Number,
"CustomContainerConfig": Map,
"Code": Map,
"CustomRuntimeConfig": Map,
"CustomDns": Map,
"Description": String,
"DiskSize": Integer,
"EnvironmentVariables": Map,
"GpuConfig": Map,
"InstanceLifecycleConfig": Map,
"InternetAccess": Boolean,
"InstanceConcurrency": Integer,
"Layers": List,
"LogConfig": Map,
"MemorySize": Integer,
"NasConfig": Map,
"OssMountConfig": Map,
"Role": String,
"TracingConfig": Map,
"Timeout": Integer,
"VpcConfig": Map,
"DisableOndemand": Boolean,
"SessionAffinityConfig": Map,
"InstanceIsolationMode": String,
"SessionAffinity": String,
"Tags": List
}
}
Propriedades
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
FunctionName |
String |
Sim |
Sim |
Nome da função. |
O nome pode conter letras, dígitos, sublinhados (_) e hifens (-). Deve ter de 1 a 64 caracteres e não pode começar com dígito ou hífen (-). |
|
Handler |
String |
Sim |
Sim |
Ponto de entrada de execução da função. |
Nenhuma. |
|
Runtime |
String |
Sim |
Sim |
Runtime da função. |
Valores válidos: nodejs8, nodejs10, nodejs12, nodejs14, nodejs16, nodejs18, nodejs20, go1, python3, python3.9, python3.10, java8, java11, php7.2, dotnetcore3.1, custom, custom.debian10 e custom-container. |
|
Cpu |
Number |
Não |
Sim |
Especificação de CPU da função. |
Unidade: vCPU. Deve ser múltiplo de 0,05. Valores válidos: 0,05 a 16. A proporção entre CPU e memória (em GB) deve ser de 1:1 a 1:4. |
|
CustomContainerConfig |
Map |
Não |
Sim |
Configuração do runtime de contêiner personalizado. |
Executa a função com uma imagem de contêiner personalizado. Especifique Code ou CustomContainerConfig. Propriedades de CustomContainerConfig. |
|
Code |
Map |
Não |
Sim |
Pacote ZIP do código da função. |
Especifique Code ou CustomContainerConfig. Propriedades de Code. |
|
CustomRuntimeConfig |
Map |
Não |
Sim |
Configuração do runtime personalizado. |
|
|
CustomDns |
Map |
Não |
Sim |
Configuração de DNS personalizado. |
|
|
Description |
String |
Não |
Sim |
Descrição da função. |
Nenhuma. |
|
DiskSize |
Integer |
Não |
Sim |
Tamanho do disco da função. |
Unidade: MB. Valores válidos: 512 e 10240. |
|
EnvironmentVariables |
Map |
Não |
Sim |
Variáveis de ambiente da função. |
Acessíveis no runtime da função. Exemplo:
|
|
GpuConfig |
Map |
Não |
Sim |
Configuração de GPU da função. |
|
|
InstanceLifecycleConfig |
Map |
Não |
Sim |
Configuração do hook de ciclo de vida da instância. |
|
|
InternetAccess |
Boolean |
Não |
Sim |
Indica se a função pode acessar a internet. |
Padrão: true. |
|
InstanceConcurrency |
Integer |
Não |
Sim |
Concorrência máxima da instância. |
Nenhuma. |
|
Layers |
List |
Não |
Sim |
Lista de layers. |
Os layers são mesclados em ordem decrescente de índice. Um layer de índice menor sobrescreve arquivos de mesmo nome provenientes de layers de índice maior. Exemplo:
|
|
LogConfig |
Map |
Não |
Sim |
Configuração de log. |
Os logs da função são gravados no Logstore configurado. Propriedades de LogConfig. |
|
DisableOndemand |
Boolean |
Não |
Não |
Indica se a criação de instâncias sob demanda deve ser desativada. |
Quando ativado, apenas instâncias provisionadas são utilizadas. |
|
SessionAffinityConfig |
Map |
Não |
Não |
Configuração de afinidade de sessão. |
Nenhuma. |
|
InstanceIsolationMode |
String |
Não |
Não |
Modo de isolamento da instância. |
Nenhuma. |
|
SessionAffinity |
String |
Não |
Não |
Política de afinidade de sessão. |
Valores válidos:
|
|
MemorySize |
Integer |
Não |
Sim |
Tamanho da memória da função. |
Unidade: MB. Deve ser múltiplo de 64. Intervalo válido: 128 MB a 32 GB. A proporção entre CPU e memória (em GB) deve ser de 1:1 a 1:4. |
|
NasConfig |
Map |
Não |
Sim |
Configuração do NAS. |
Permite que a função acesse recursos NAS especificados. Propriedades de NasConfig. |
|
OssMountConfig |
Map |
Não |
Sim |
Configuração de montagem do OSS. |
|
|
Role |
String |
Não |
Sim |
Função do RAM concedida ao Function Compute. |
O Function Compute assume essa função para gerar credenciais temporárias de acesso a serviços da Alibaba Cloud, como OSS e Tablestore. |
|
TracingConfig |
Map |
Não |
Sim |
Configuração do Tracing Analysis. |
Registra latência de requisição, tempo de cold start e tempo de execução dentro da função por meio da integração com o Tracing Analysis. Propriedades de TracingConfig. |
|
Timeout |
Integer |
Não |
Sim |
Tempo limite de execução da função. |
Unidade: segundos. Valores válidos: 1 a 86400. Padrão: 3. A função é encerrada após esse período. |
|
Tags |
List |
Não |
Não |
Lista de tags personalizadas. |
|
|
VpcConfig |
Map |
Não |
Sim |
Configuração da VPC. |
Permite que a função acesse recursos de VPC especificados. Propriedades de VpcConfig. |
Sintaxe de Tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propriedades de Tags
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Value |
String |
Não |
Não |
Valor da tag. |
Comprimento: 0 a 256 caracteres. |
|
Key |
String |
Sim |
Não |
Chave da tag. |
Comprimento: 1 a 256 caracteres. |
Sintaxe de TracingConfig
"TracingConfig": {
"Type": String,
"Params": Map
}
Propriedades de TracingConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Type |
String |
Não |
Sim |
Tipo de protocolo para o Tracing Analysis. |
Apenas Jaeger é suportado. |
|
Params |
Map |
Não |
Sim |
Parâmetros do Tracing Analysis. |
Um map[string]string. A chave é "endpoint" e o valor é o endpoint interno do Tracing Analysis. Exemplo: endpoint: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_xxx/api/otlp/traces. |
Sintaxe de VpcConfig
"VpcConfig": {
"VpcId": String,
"VSwitchIds": List,
"SecurityGroupId": String
}
Propriedades de VpcConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
VpcId |
String |
Não |
Sim |
ID da rede VPC. |
Nenhuma. |
|
VSwitchIds |
List |
Não |
Sim |
Lista de vSwitches. |
Nenhuma. |
|
SecurityGroupId |
String |
Não |
Sim |
ID do grupo de segurança. |
Nenhuma. |
Sintaxe de InstanceLifecycleConfig
"InstanceLifecycleConfig": {
"PreStop": Map,
"Initializer": Map
}
Propriedades de InstanceLifecycleConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
PreStop |
Map |
Não |
Sim |
Configuração do método PreStop. |
|
|
Initializer |
Map |
Não |
Sim |
Configuração do método initializer. |
Sintaxe de PreStop
"PreStop": {
"Timeout": Integer,
"Handler": String
}
Propriedades de PreStop
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Timeout |
Integer |
Não |
Sim |
Tempo limite do método de callback. |
Unidade: segundos. |
|
Handler |
String |
Não |
Sim |
Ponto de entrada do método de callback. |
Mesmo formato do handler da função. |
Sintaxe de Initializer
"Initializer": {
"Timeout": Integer,
"Handler": String
}
Propriedades de Initializer
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Timeout |
Integer |
Não |
Sim |
Tempo limite do método de callback. |
Unidade: segundos. |
|
Handler |
String |
Não |
Sim |
Ponto de entrada do método de callback. |
Mesmo formato do handler da função. |
Sintaxe de CustomContainerConfig
"CustomContainerConfig": {
"ResolvedImageUri": String,
"AccelerationInfo": Map,
"AcrInstanceId": String,
"Entrypoint": List,
"Command": List,
"AccelerationType": String,
"Port": Integer,
"HealthCheckConfig": Map,
"Image": String,
"RegistryConfig": Map
}
Propriedades de CustomContainerConfig
|
Propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
ResolvedImageUri |
String |
Não |
Sim |
Digest da imagem implantada. |
O runtime utiliza a versão do código neste digest. Retornado por GetFunction; não precisa ser especificado. |
|
AccelerationInfo |
Map |
Não |
Sim |
Informações de aceleração de imagem. |
|
|
AcrInstanceId |
String |
Não |
Sim |
ID do repositório de imagens do ACR Enterprise Edition. |
Obrigatório para imagens do ACR Enterprise Edition. |
|
Entrypoint |
List |
Não |
Sim |
Comando de inicialização do contêiner. |
Nenhuma. |
|
Command |
List |
Não |
Sim |
Parâmetros de inicialização do contêiner. |
Nenhuma. |
|
AccelerationType |
String |
Não |
Sim |
Indica se a aceleração de imagem deve ser ativada. |
O padrão ativa a aceleração de imagem. None desativa a aceleração de imagem. |
|
Port |
Integer |
Não |
Sim |
Porta de escuta do servidor HTTP para o runtime de contêiner personalizado. |
Nenhuma. |
|
HealthCheckConfig |
Map |
Não |
Sim |
Configuração personalizada de verificação de integridade da função. |
|
|
Image |
String |
Não |
Sim |
URL da imagem do contêiner. |
Nenhuma. |
|
RegistryConfig |
Map |
Não |
Sim |
Configuração do repositório de imagens. |
Para mais informações, consulte Propriedades de RegistryConfig. |
Sintaxe de RegistryConfig
"RegistryConfig": {
"CertConfig": Map,
"NetworkConfig": Map,
"AuthConfig": Map
}
Propriedades de RegistryConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
CertConfig |
Map |
Sim |
Sim |
Configuração de certificado. |
Para mais informações, consulte Propriedades de CertConfig. |
|
NetworkConfig |
Map |
Não |
Sim |
Configuração de rede. |
Para mais informações, consulte Propriedades de NetworkConfig. |
|
AuthConfig |
Map |
Não |
Sim |
Configuração de autorização. |
Para mais informações, consulte Propriedades de AuthConfig. |
Sintaxe de CertConfig
"CertConfig": {
"Insecure": Boolean,
"RootCaCertBase64": String
}
Propriedades de CertConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Insecure |
Boolean |
Sim |
Sim |
Indica se a verificação de certificado deve ser ignorada. |
Nenhuma. |
|
RootCaCertBase64 |
String |
Não |
Sim |
Certificado CA para o repositório de imagens. |
Nenhuma. |
Sintaxe de NetworkConfig
"NetworkConfig": {
"VSwitchId": String,
"VpcId": String,
"SecurityGroupId": String
}
Propriedades de NetworkConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
VSwitchId |
String |
Sim |
Sim |
ID do vSwitch que pode se conectar ao repositório de imagens. |
Nenhuma. |
|
VpcId |
String |
Sim |
Sim |
ID da VPC que pode se conectar ao repositório de imagens. |
Nenhuma. |
|
SecurityGroupId |
String |
Sim |
Sim |
ID do grupo de segurança que pode se conectar ao repositório de imagens. |
Nenhuma. |
Sintaxe de AuthConfig
"AuthConfig": {
"Password": String,
"UserName": String
}
Propriedades de AuthConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Password |
String |
Sim |
Sim |
Senha para o repositório de imagens. |
Nenhuma. |
|
UserName |
String |
Sim |
Sim |
Nome de usuário para o repositório de imagens. |
Nenhuma. |
Sintaxe de AccelerationInfo
"AccelerationInfo": {
"Status": String
}
Propriedade de AccelerationInfo
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Status |
String |
Não |
Sim |
Status da aceleração de imagem. |
Nenhuma. |
Sintaxe de HealthCheckConfig
"HealthCheckConfig": {
"TimeoutSeconds": Integer,
"InitialDelaySeconds": Integer,
"HttpGetUrl": String,
"PeriodSeconds": Integer,
"FailureThreshold": Integer,
"SuccessThreshold": Integer
}
Propriedades de HealthCheckConfig
|
Propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
TimeoutSeconds |
Integer |
Não |
Sim |
Tempo limite da verificação de integridade. |
Valores válidos: 1 a 3. Padrão: 1. |
|
InitialDelaySeconds |
Integer |
Não |
Sim |
Atraso antes da primeira verificação de integridade após a inicialização do contêiner. |
Valores válidos: 0 a 120. Padrão: 0. |
|
HttpGetUrl |
String |
Não |
Sim |
URL de verificação de integridade do contêiner. |
Comprimento máximo: 2048 caracteres. |
|
PeriodSeconds |
Integer |
Não |
Sim |
Intervalo da verificação de integridade. |
Valores válidos: 1 a 120. Padrão: 3. |
|
FailureThreshold |
Integer |
Não |
Sim |
Limiar de falha da verificação de integridade. |
Após esse número de falhas consecutivas, a verificação é considerada malsucedida. Valores válidos: 1 a 120. Padrão: 3. |
|
SuccessThreshold |
Integer |
Não |
Sim |
Limiar de sucesso da verificação de integridade. |
Após esse número de sucessos consecutivos, a verificação é considerada aprovada. Valores válidos: 1 a 120. Padrão: 1. |
Sintaxe de Code
"Code": {
"SourceCode": String,
"ZipFile": String,
"Checksum": String,
"OssObjectName": String,
"OssBucketName": String
}
Propriedades de Code
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
SourceCode |
String |
Não |
Sim |
Código da função. |
Nenhuma. |
|
ZipFile |
String |
Não |
Sim |
Pacote ZIP do código da função codificado em Base64. |
Nenhuma. |
|
Checksum |
String |
Não |
Sim |
Checksum CRC-64 do pacote de código. |
Quando fornecido, o Function Compute verifica o checksum do pacote de código. |
|
OssObjectName |
String |
Não |
Sim |
Nome do objeto OSS do pacote ZIP de código. |
Nenhuma. |
|
OssBucketName |
String |
Não |
Sim |
Nome do bucket OSS do pacote ZIP de código. |
Nenhuma. |
Sintaxe de CustomRuntimeConfig
"CustomRuntimeConfig": {
"Args": List,
"Command": List,
"Port": Integer,
"HealthCheckConfig": Map
}
Propriedades de CustomRuntimeConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Args |
List |
Não |
Sim |
Parâmetros de inicialização da instância. |
Nenhuma. |
|
Command |
List |
Não |
Sim |
Comando de inicialização da instância. |
Nenhuma. |
|
Port |
Integer |
Não |
Sim |
Porta de escuta do servidor HTTP. |
Nenhuma. |
|
HealthCheckConfig |
Map |
Não |
Sim |
Configuração personalizada de verificação de integridade da função. |
Sintaxe de GpuConfig
"GpuConfig": {
"GpuMemorySize": Integer,
"GpuType": String
}
Propriedades de GpuConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
GpuMemorySize |
Integer |
Não |
Sim |
Especificação de memória da GPU. |
Unidade: MB. Deve ser múltiplo de 1024. |
|
GpuType |
String |
Não |
Sim |
Tipo de instância GPU. |
Valores válidos:
|
Sintaxe de OssMountConfig
"OssMountConfig": {
"MountPoints": List
}
Propriedades de OssMountConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
MountPoints |
List |
Não |
Sim |
Lista de pontos de montagem do OSS. |
Sintaxe de MountPoints
"MountPoints": [
{
"MountDir": String,
"BucketName": String,
"Endpoint": String,
"ReadOnly": Boolean,
"BucketPath": String
}
]
Propriedades de MountPoints
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
MountDir |
String |
Não |
Sim |
Pasta de montagem local. |
Nenhuma. |
|
BucketName |
String |
Não |
Sim |
Bucket OSS montado. |
Nenhuma. |
|
Endpoint |
String |
Não |
Sim |
Endpoint do OSS. |
Nenhuma. |
|
ReadOnly |
Boolean |
Não |
Sim |
Indica se a montagem é somente leitura. |
Nenhuma. |
|
BucketPath |
String |
Não |
Sim |
Caminho do bucket OSS montado. |
Nenhuma. |
Sintaxe de CustomDns
"CustomDns": {
"Searches": List,
"DnsOptions": List,
"NameServers": List
}
Propriedades de CustomDns
|
Propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Searches |
List |
Não |
Sim |
Lista de domínios de busca DNS. |
Nenhuma. |
|
DnsOptions |
List |
Não |
Sim |
Opções de DNS no arquivo resolv.conf. |
Cada item é um par chave-valor no formato |
|
NameServers |
List |
Não |
Sim |
Endereços IP dos servidores DNS. |
Nenhuma. |
Sintaxe de DnsOptions
"DnsOptions": [
{
"Value": String,
"Name": String
}
]
Propriedades de DnsOptions
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Name |
String |
Não |
Sim |
Nome do item de configuração. |
Nenhuma. |
|
Value |
String |
Não |
Sim |
Valor do item de configuração. |
Nenhuma. |
Sintaxe de NasConfig
"NasConfig": {
"MountPoints": List,
"UserId": Integer,
"GroupId": Integer
}
Propriedades de NasConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
MountPoints |
List |
Não |
Sim |
Lista de pontos de montagem. |
|
|
UserId |
Integer |
Não |
Sim |
ID da conta. |
Nenhuma. |
|
GroupId |
Integer |
Não |
Sim |
ID do grupo. |
Nenhuma. |
Sintaxe de LogConfig
"LogConfig": {
"Project": String,
"LogBeginRule": String,
"Logstore": String,
"EnableInstanceMetrics": Boolean,
"EnableRequestMetrics": Boolean
}
Propriedades de LogConfig
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrição |
|
Project |
String |
Não |
Sim |
Nome do projeto SLS. |
Nenhuma. |
|
LogBeginRule |
String |
Não |
Sim |
Regra de correspondência para a primeira linha de um log. |
Nenhuma. |
|
Logstore |
String |
Não |
Sim |
Nome do Logstore SLS. |
Nenhuma. |
|
EnableInstanceMetrics |
Boolean |
Não |
Sim |
Indica se métricas no nível da instância devem ser ativadas. |
Rastreia utilização de CPU, uso de memória, condições de rede e contagem de requisições por instância. Padrão: false. |
|
EnableRequestMetrics |
Boolean |
Não |
Sim |
Indica se métricas no nível da requisição devem ser ativadas. |
Rastreia tempo de execução e uso de memória por invocação da função. Padrão: true. |
Valores de retorno
Fn::GetAtt
FunctionId: ID único da função gerado pelo sistema.
FunctionName: Nome da função.
ARN: ARN da função.
Exemplos
ROSTemplateFormatVersion: '2015-09-01'
Resources:
Function:
Type: ALIYUN::FC3::Function
Properties:
Code:
SourceCode: |
import time
import json
import urllib.request
import logging
def handler(event, context):
logger = logging.getLogger()
event = json.loads(event)
logger.info('receive request: %s', event)
res_props = event['ResourceProperties']
result = dict(
RequestId=event['RequestId'],
LogicalResourceId=event['LogicalResourceId'],
StackId=event['StackId'],
Status='SUCCESS',
PhysicalResourceId='dummy'
)
if event['RequestType'] != 'Delete':
result['Data'] = dict(z=res_props['X'] + res_props['Y'])
headers = {
'Content-type': 'application/json',
'Accept': 'application/json',
'Date': time.strftime('%a, %d %b %Y %X GMT', time.gmtime())
}
data = json.dumps(result).encode('utf-8') # Use an encoded byte string.
req = urllib.request.Request(event['ResponseURL'], data=data, headers=headers, method='PUT')
with urllib.request.urlopen(req) as resp:
resp_content = resp.read().decode('utf-8') # Read and decode the response.
logger.info('response: %s', resp_content)
Handler: index.handler
FunctionName:
Ref: FunctionName
Runtime:
Ref: Runtime
Parameters:
Runtime:
Default: python3.9
Required: true
Type: String
Description:
en: The programming language of the function.
FunctionName:
Default: hello-world
Required: true
Type: String
Description:
en: The name of the function.
Outputs:
FunctionId:
Description: The function ID
Value:
Fn::GetAtt:
- Function
- FunctionId
ARN:
Description: The ARN for ALIYUN::ROS::CustomResource
Value:
Fn::GetAtt:
- Function
- ARN
FunctionName:
Description: The function name
Value:
Fn::GetAtt:
- Function
- FunctionName
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"Function": {
"Type": "ALIYUN::FC3::Function",
"Properties": {
"Code": {
"SourceCode": "import time\nimport json\nimport urllib.request\nimport logging\n\n\ndef handler(event, context):\n logger = logging.getLogger()\n\n event = json.loads(event)\n logger.info('receive request: %s', event)\n\n res_props = event['ResourceProperties']\n\n result = dict(\n RequestId=event['RequestId'],\n LogicalResourceId=event['LogicalResourceId'],\n StackId=event['StackId'],\n Status='SUCCESS',\n PhysicalResourceId='dummy'\n )\n if event['RequestType'] != 'Delete':\n result['Data'] = dict(z=res_props['X'] + res_props['Y'])\n\n headers = {\n 'Content-type': 'application/json',\n 'Accept': 'application/json',\n 'Date': time.strftime('%a, %d %b %Y %X GMT', time.gmtime())\n }\n data = json.dumps(result).encode('utf-8') # Use an encoded byte string.\n req = urllib.request.Request(event['ResponseURL'], data=data, headers=headers, method='PUT')\n with urllib.request.urlopen(req) as resp:\n resp_content = resp.read().decode('utf-8') # Read and decode the response.\n logger.info('response: %s', resp_content)\n"
},
"Handler": "index.handler",
"FunctionName": {
"Ref": "FunctionName"
},
"Runtime": {
"Ref": "Runtime"
}
}
}
},
"Parameters": {
"Runtime": {
"Default": "python3.9",
"Required": true,
"Type": "String",
"Description": {
"en": "The programming language of the function."
}
},
"FunctionName": {
"Default": "hello-world",
"Required": true,
"Type": "String",
"Description": {
"en": "The name of the function."
}
}
},
"Outputs": {
"FunctionId": {
"Description": "The function ID",
"Value": {
"Fn::GetAtt": [
"Function",
"FunctionId"
]
}
},
"ARN": {
"Description": "The ARN for ALIYUN::ROS::CustomResource",
"Value": {
"Fn::GetAtt": [
"Function",
"ARN"
]
}
},
"FunctionName": {
"Description": "The function name",
"Value": {
"Fn::GetAtt": [
"Function",
"FunctionName"
]
}
}
}
}