Le type ALIYUN::ApiGateway::Api crée une API dans API Gateway.
Syntaxe
{
"Type": "ALIYUN::ApiGateway::Api",
"Properties": {
"ErrorCodeSamples": List,
"Description": String,
"ServiceConfig": Map,
"SystemParameters": List,
"ServiceParameters": List,
"OpenIdConnectConfig": Map,
"RequestConfig": Map,
"AuthType": String,
"Visibility": String,
"Tags": List,
"ResultSample": String,
"ResultType": String,
"ApiName": String,
"FailResultSample": String,
"DisableInternet": Boolean,
"ForceNonceCheck": Boolean,
"ConstParameters": List,
"GroupId": String,
"ServiceParametersMap": List,
"RequestParameters": List,
"AppCodeAuthType": String,
"ResultBodyModel": String,
"AllowSignatureMethod": String,
"WebSocketApiType": String,
"ResultDescriptions": String
}
}
Propriétés
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
ApiName | String | Oui | Oui | Nom de l'API. | La longueur doit être comprise entre 4 et 50 caractères. Le nom doit commencer par une lettre latine ou un caractère chinois et ne peut contenir que des lettres latines, des caractères chinois, des chiffres et des traits de soulignement (_). Remarque Les noms d'API doivent être uniques au sein d'un groupe d'API. |
GroupId | String | Oui | Non | ID du groupe d'API. | Aucune |
RequestConfig | Map | Oui | Oui | Configuration des requêtes API envoyées par les consommateurs vers API Gateway. | |
ResultSample | String | Non | Oui | Exemple de réponse du service backend. | Aucune |
ResultType | String | Non | Oui | Format de la réponse du service backend. | Valeurs valides :
|
ServiceConfig | Map | Oui | Oui | Configuration des requêtes API envoyées par API Gateway vers le service backend. | |
Visibility | String | Oui | Oui | Indique si l'API est publique. | Valeurs valides :
|
AllowSignatureMethod | String | Non | Oui | Requis lorsque AuthType est défini sur APP. Définit l'algorithme de signature. | Valeurs valides :
|
AppCodeAuthType | String | Non | Oui | Type d'authentification AppCode. | Valide uniquement si AuthType est défini sur APP. Valeurs valides :
|
AuthType | String | Non | Oui | Type d'authentification de sécurité de l'API. | Valeurs valides :
|
ConstParameters | List | Non | Oui | Paramètres constants de l'API. | |
Description | String | Non | Oui | Description de l'API. | La description peut comporter jusqu'à 180 caractères. |
DisableInternet | Boolean | Non | Oui | Indique s'il faut désactiver les appels via le réseau public. | Valeurs valides :
|
ErrorCodeSamples | List | Non | Oui | Exemples de codes d'erreur renvoyés par le service backend. | |
FailResultSample | String | Non | Oui | Exemple de réponse en cas d'échec de la requête provenant du service backend. | Aucune |
ForceNonceCheck | Boolean | Non | Oui | Indique s'il faut vérifier systématiquement X-Ca-Nonce. | Valeurs valides :
|
OpenIdConnectConfig | Map | Non | Oui | Configuration de l'authentification OpenID Connect. | |
RequestParameters | List | Non | Oui | Paramètres des requêtes API envoyées par les consommateurs vers API Gateway. | |
ResultBodyModel | String | Non | Oui | Résultat renvoyé par l'API. | Aucune |
ResultDescriptions | String | Non | Oui | Description du résultat. | Aucune |
ServiceParameters | List | Non | Oui | Paramètres des requêtes API envoyées par API Gateway vers le service backend. | |
ServiceParametersMap | List | Non | Oui | Mappages entre les paramètres de requête consommateur-vers-passerelle et passerelle-vers-backend. | |
SystemParameters | List | Non | Oui | Paramètres système de l'API. | |
Tags | List | Non | Oui | Tags. | Vous pouvez ajouter jusqu'à 20 tags. |
WebSocketApiType | String | Non | Oui | Type de l'API de communication bidirectionnelle. | Valeurs valides :
|
Syntaxe des tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propriétés des tags
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Key |
String |
Oui |
Non |
Clé du tag. |
La clé du tag peut comporter de 1 à 128 caractères. Elle ne peut pas commencer par |
|
Value |
String |
Non |
Non |
Valeur du tag. |
La valeur du tag peut comporter de 0 à 128 caractères. Elle ne peut pas commencer par |
Syntaxe de ErrorCodeSamples
"ErrorCodeSamples": [
{
"Message": String,
"Code": String,
"Description": String
}
]
Propriétés de ErrorCodeSamples
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Code |
String |
Oui |
Oui |
Code d'erreur. |
Aucune |
|
Message |
String |
Oui |
Oui |
Message d'erreur. |
Aucune |
|
Description |
String |
Non |
Oui |
Description de l'erreur. |
Aucune |
Syntaxe de ServiceConfig
"ServiceConfig": {
"ServiceTimeOut": Integer,
"FunctionComputeConfig": Map,
"VpcConfig": Map,
"MockResult": String,
"MockStatusCode": Integer,
"ServiceHttpMethod": String,
"ServiceProtocol": String,
"ServiceVpcEnable": String,
"ServiceAddress": String,
"ContentTypeValue": String,
"MockHeaders": List,
"ContentTypeCatagory": String,
"ServicePath": String,
"Mock": String
}
Propriétés de ServiceConfig
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
ContentTypeCatagory | String | Non | Oui | Politique de définition de la valeur de l'en-tête Content-Type lors de l'appel du service HTTP backend. | Valeurs valides :
|
ContentTypeValue | String | Non | Oui | Valeur de l'en-tête Content-Type lorsque le service backend est un service HTTP et que ContentTypeCatagory est défini sur DEFAULT ou CUSTOM. | Aucune |
FunctionComputeConfig | Map | Non | Oui | Le service backend est Function Compute. | Aucune |
Mock | String | Non | Oui | Indique s'il faut activer le mode mock. | Valeurs valides :
|
MockHeaders | List | Non | Oui | En-têtes de réponse mock personnalisés. Ce paramètre n'est valide que lorsque le mode mock est activé. | Aucune |
MockResult | String | Non | Oui | Résultat renvoyé en mode mock. | Aucune |
MockStatusCode | Integer | Non | Oui | Code d'état. | Le code d'état doit être compatible avec les codes d'état de réponse HTTP 1.1. |
ServiceAddress | String | Non | Oui | Endpoint du service backend. | Par exemple, si l'adresse complète du service backend est |
ServiceHttpMethod | String | Non | Oui | Méthode HTTP utilisée pour appeler le service backend. | Valeurs valides :
|
ServicePath | String | Non | Oui | Chemin du service backend. | Par exemple, si l'adresse complète du service backend est |
ServiceProtocol | String | Non | Oui | Protocole du service backend. | Valeurs valides :
|
ServiceTimeOut | Integer | Non | Oui | Délai d'expiration du service backend. | Unité : millisecondes. |
ServiceVpcEnable | String | Non | Oui | Indique s'il faut utiliser un VPC. | Valeurs valides :
|
VpcConfig | Map | Non | Oui | Configurations du canal VPC. |
Syntaxe de VpcConfig
"VpcConfig": {
"InstanceId": String,
"VpcId": String,
"Port": Integer
}
Propriétés de VpcConfig
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
InstanceId |
String |
Oui |
Oui |
ID de l'instance dans le VPC. |
Seules les instances ECS et SLB sont prises en charge. |
|
Port |
Integer |
Oui |
Oui |
Numéro de port de l'instance. |
Aucune |
|
VpcId |
String |
Oui |
Oui |
ID du VPC. |
Aucune |
Syntaxe de SystemParameters
"SystemParameters": [
{
"DemoValue": String,
"ParameterName": String,
"ServiceParameterName": String,
"Location": String,
"Description": String
}
]
Propriétés de SystemParameters
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
Location | String | Oui | Oui | Emplacement du paramètre. | Aucune |
ParameterName | String | Oui | Oui | Nom du paramètre système. | Valeurs valides :
|
ServiceParameterName | String | Oui | Oui | Nom du paramètre backend. | Aucune |
DemoValue | String | Non | Oui | Exemple. | Aucune |
Description | String | Non | Oui | Description du paramètre. | Aucune |
Syntaxe de ServiceParameters
"ServiceParameters": [
{
"ParameterType": String,
"Location": String,
"ServiceParameterName": String
}
]
Propriétés de ServiceParameters
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
Location | String | Oui | Oui | Emplacement du paramètre. | Valeurs valides :
|
ParameterType | String | Oui | Oui | Type de données du paramètre backend. | Valeurs valides :
|
ServiceParameterName | String | Oui | Oui | Nom du paramètre backend. | Aucune |
Syntaxe de OpenIdConnectConfig
"OpenIdConnectConfig": {
"OpenIdApiType": String,
"PublicKey": String,
"PublicKeyId": String,
"IdTokenParamName": String
}
Propriétés de OpenIdConnectConfig
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
OpenIdApiType | String | Oui | Oui | Mode OpenID Connect. | Valeurs valides :
|
IdTokenParamName | String | Non | Oui | Nom du paramètre correspondant au jeton. | Aucune |
PublicKey | String | Non | Oui | Clé publique. | Aucune |
PublicKeyId | String | Non | Oui | ID de la clé publique. | Aucune |
Syntaxe de RequestConfig
"RequestConfig": {
"RequestMode": String,
"RequestPath": String,
"PostBodyDescription": String,
"RequestProtocol": String,
"RequestHttpMethod": String,
"BodyFormat": String
}
Propriétés de RequestConfig
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
RequestHttpMethod | String | Oui | Oui | Méthode de requête. | Valeurs valides :
|
RequestMode | String | Oui | Oui | Mode de requête. | Valeurs valides :
|
RequestPath | String | Oui | Oui | URI de la requête. | Par exemple, si l'URI complet de l'API est |
RequestProtocol | String | Oui | Oui | Types de protocoles pris en charge par l'API. | Valeurs valides :
Séparez plusieurs protocoles par des virgules (,), par exemple |
BodyFormat | String | Non | Oui | Pour les requêtes POST, PUT ou PATCH, spécifie comment les données sont transmises au serveur. | Valeurs valides :
Valide uniquement si RequestMode est défini sur MAPPING. |
PostBodyDescription | String | Non | Oui | Description du corps de la requête. | Aucune |
Syntaxe de ServiceParametersMap
"ServiceParametersMap": [
{
"RequestParameterName": String,
"ServiceParameterName": String
}
]
Propriétés de ServiceParametersMap
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
RequestParameterName |
String |
Oui |
Oui |
Nom du paramètre frontend. |
La valeur de ce paramètre doit exister dans RequestParameters. Doit correspondre à ApiParameterName dans RequestParameters. |
|
ServiceParameterName |
String |
Oui |
Oui |
Nom du paramètre backend. |
Aucune |
Syntaxe de RequestParameters
"RequestParameters": [
{
"ParameterType": String,
"Required": String,
"Description": String,
"DemoValue": String,
"MinLength": Integer,
"DefaultValue": String,
"RegularExpression": String,
"MaxValue": Integer,
"MinValue": Integer,
"JsonScheme": String,
"ApiParameterName": String,
"Location": String,
"DocShow": String,
"MaxLength": Integer,
"EnumValue": String,
"DocOrder": Integer
}
]
Propriétés de RequestParameters
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
ApiParameterName | String | Oui | Oui | Nom du paramètre. | Aucune |
Location | String | Oui | Oui | Emplacement du paramètre. | Valeurs valides :
|
ParameterType | String | Oui | Non | Type du paramètre. | Valeurs valides :
|
Required | String | Oui | Oui | Indique si le paramètre est obligatoire. | Valeurs valides :
|
DefaultValue | String | Non | Oui | Valeur par défaut. | Aucune |
DemoValue | String | Non | Oui | Valeur d'exemple. | Aucune |
Description | String | Non | Oui | Description du paramètre. | Aucune |
DocOrder | Integer | Non | Oui | Ordre dans le document. | Aucune |
DocShow | String | Non | Oui | Indique si le SDK ou les documents générés par API Gateway sont visibles. | Valeurs valides :
|
EnumValue | String | Non | Oui | Valeurs valides du paramètre lorsque ParameterType est défini sur Int, Long, Float, Double ou String. | Séparez plusieurs valeurs par des virgules (,), par exemple |
JsonScheme | String | Non | Oui | Si ParameterType est défini sur String, le paramètre est vérifié selon le schéma JSON. | Aucune |
MaxLength | Integer | Non | Oui | Longueur maximale du paramètre. Valide uniquement si ParameterType est défini sur String. | Aucune |
MaxValue | Integer | Non | Oui | Valeur maximale du paramètre. Valide uniquement si ParameterType est défini sur Int, Long, Float ou Double. | Aucune |
MinLength | Integer | Non | Oui | Longueur minimale du paramètre. Valide uniquement si ParameterType est défini sur String. | Aucune |
MinValue | Integer | Non | Oui | Valeur minimale du paramètre. Valide uniquement si ParameterType est défini sur Int, Long, Float ou Double. | Aucune |
RegularExpression | String | Non | Oui | Si ParameterType est défini sur String, le paramètre est vérifié selon l'expression régulière. | Aucune |
Syntaxe de ConstParameters
"ConstParameters": [
{
"ConstValue": String,
"ServiceParameterName": String,
"Description": String,
"Location": String
}
]
Propriétés de ConstParameters
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
ConstValue | String | Oui | Oui | Valeur du paramètre. | Aucune |
Location | String | Oui | Oui | Emplacement du paramètre. | Valeurs valides :
|
ServiceParameterName | String | Oui | Oui | Nom du paramètre backend. | Aucune |
Description | String | Non | Oui | Description du paramètre. | Aucune |
Syntaxe de FunctionComputeConfig
"FunctionComputeConfig": {
"FcRegionId": String,
"RoleArn": String,
"ServiceName": String,
"FunctionName": String,
"Qualifier": String,
"ContentTypeValue": String,
"ContentTypeCatagory": String,
"FcBaseUrl": String,
"FcType": String,
"Method": String,
"OnlyBusinessPath": Boolean,
"Path": String,
"FcVersion": String
}
Propriétés de FunctionComputeConfig
Nom de la propriété | Type | Obligatoire | Mise à jour autorisée | Description | Contraintes |
ContentTypeCatagory | String | Non | Oui | Politique de définition de la valeur de l'en-tête Content-Type lors de l'appel du service HTTP backend. | Valeurs valides :
|
FcVersion | String | Non | Non | Version de Function Compute. | Valeurs valides :
|
ContentTypeValue | String | Non | Oui | Valeur de l'en-tête Content-Type lorsque vous appelez le service HTTP backend et que ContentTypeCatagory est défini sur DEFAULT ou CUSTOM. | Aucune |
FcBaseUrl | String | Non | Oui | Endpoint du déclencheur. | L'endpoint doit commencer par |
FcRegionId | String | Non | Oui | ID de la région où Function Compute est déployé. | Aucune |
FcType | String | Non | Oui | Type de fonction. | Valeurs valides :
|
FunctionName | String | Non | Oui | Nom de la fonction dans Function Compute. | Aucune |
Method | String | Non | Oui | Méthode de requête HTTP. | Valeurs valides :
|
OnlyBusinessPath | Boolean | Non | Oui | Indique s'il faut transmettre uniquement le chemin de requête backend personnalisé au service backend. | Valeurs valides :
|
Path | String | Non | Oui | Chemin de la requête backend. | Le paramètre doit être entouré de crochets ([]), par exemple |
Qualifier | String | Non | Oui | Alias de la fonction dans Function Compute. | Aucune |
RoleArn | String | Non | Oui | ARN du rôle RAM assumé par API Gateway pour accéder à Function Compute. | Aucune |
ServiceName | String | Non | Oui | Nom du service dans Function Compute. | Aucune |
Syntaxe de MockHeaders
"MockHeaders": [
{
"HeaderValue": String,
"HeaderName": String
}
]
Propriétés de MockHeaders
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
HeaderName |
String |
Oui |
Oui |
Nom de l'en-tête de réponse. |
Aucune |
|
HeaderValue |
String |
Oui |
Oui |
Valeur de l'en-tête de réponse. |
Aucune |
Valeurs de retour
Fn::GetAtt
ApiId : ID de l'API.
ARN signifie Alibaba Cloud Resource Name.
Exemples
Modifiez les valeurs des paramètres dans les exemples suivants en fonction de vos besoins. Par exemple, vous devez modifier la valeur de InstanceId.
Format YAML
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ApiGateway Api
Parameters: {}
Resources:
RamRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName: TestRole
Policies:
- PolicyName: TestPolicy
PolicyDocument:
Version: '1'
Statement:
- Action:
- fc:InvokeFunction
Resource:
- '*'
Effect: Allow
AssumeRolePolicyDocument:
Version: '1'
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service:
- apigateway.aliyuncs.com
FCService:
Type: ALIYUN::FC::Service
Properties:
ServiceName: TestService
InternetAccess: true
Function:
Type: ALIYUN::FC::Function
DependsOn: FCService
Properties:
Handler: index.handler
Runtime: python3
Code:
SourceCode: "def handler(event, context):\n\treturn {'isBase64Encode': False, 'statusCode': 200, 'body': 'Hello World!', 'headers': {'Content-type': 'aplication/json'}}\n"
FunctionName: mytest
ServiceName:
Fn::GetAtt:
- FCService
- ServiceName
MemorySize: 128
Group:
Type: ALIYUN::ApiGateway::Group
Properties:
InstanceId: api-shared-vpc-***
GroupName: TestGroup
Api:
DependsOn:
- RamRole
- Group
Type: ALIYUN::ApiGateway::Api
Properties:
AppCodeAuthType: HEADER_QUERY
AuthType: APP
ServiceConfig:
FunctionComputeConfig:
fcRegionId:
Ref: ALIYUN::Region
qualifier: LATEST
roleArn:
Fn::GetAtt:
- RamRole
- Arn
serviceName:
Fn::GetAtt:
- FCService
- ServiceName
functionName:
Fn::GetAtt:
- Function
- FunctionName
ServiceProtocol: FunctionCompute
ContentTypeCatagory: CLIENT
RequestConfig:
RequestMode: MAPPING
RequestHttpMethod: POST
RequestProtocol: HTTP,HTTPS
RequestPath: /test
BodyFormat: FORM
ResultSample: ''
Visibility: PRIVATE
ResultType: JSON
ApiName: TestApi
GroupId:
Fn::GetAtt:
- Group
- GroupId
App:
Type: ALIYUN::ApiGateway::App
Properties:
Description: Test Create App
AppName: TestApp
Outputs: {}
Format JSON
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ApiGateway Api",
"Parameters": {
},
"Resources": {
"RamRole": {
"Type": "ALIYUN::RAM::Role",
"Properties": {
"RoleName": "TestRole",
"Policies": [
{
"PolicyName": "TestPolicy",
"PolicyDocument": {
"Version": "1",
"Statement": [
{
"Action": [
"fc:InvokeFunction"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}
}
],
"AssumeRolePolicyDocument": {
"Version": "1",
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"apigateway.aliyuncs.com"
]
}
}
]
}
}
},
"FCService": {
"Type": "ALIYUN::FC::Service",
"Properties": {
"ServiceName": "TestService",
"InternetAccess": true
}
},
"Function": {
"Type": "ALIYUN::FC::Function",
"DependsOn": "FCService",
"Properties": {
"Handler": "index.handler",
"Runtime": "python3",
"Code": {
"SourceCode": "def handler(event, context):\n\treturn {'isBase64Encode': False, 'statusCode': 200, 'body': 'Hello World!', 'headers': {'Content-type': 'aplication/json'}}\n"
},
"FunctionName": "mytest",
"ServiceName": {
"Fn::GetAtt": [
"FCService",
"ServiceName"
]
},
"MemorySize": 128
}
},
"Group": {
"Type": "ALIYUN::ApiGateway::Group",
"Properties": {
"InstanceId": "api-shared-vpc-***",
"GroupName": "TestGroup"
}
},
"Api": {
"DependsOn": [
"RamRole",
"Group"
],
"Type": "ALIYUN::ApiGateway::Api",
"Properties": {
"AppCodeAuthType": "HEADER_QUERY",
"AuthType": "APP",
"ServiceConfig": {
"FunctionComputeConfig": {
"fcRegionId": {
"Ref": "ALIYUN::Region"
},
"qualifier": "LATEST",
"roleArn": {
"Fn::GetAtt": [
"RamRole",
"Arn"
]
},
"serviceName": {
"Fn::GetAtt": [
"FCService",
"ServiceName"
]
},
"functionName": {
"Fn::GetAtt": [
"Function",
"FunctionName"
]
}
},
"ServiceProtocol": "FunctionCompute",
"ContentTypeCatagory": "CLIENT"
},
"RequestConfig": {
"RequestMode": "MAPPING",
"RequestHttpMethod": "POST",
"RequestProtocol": "HTTP,HTTPS",
"RequestPath": "/test",
"BodyFormat": "FORM"
},
"ResultSample": "",
"Visibility": "PRIVATE",
"ResultType": "JSON",
"ApiName": "TestApi",
"GroupId": {
"Fn::GetAtt": [
"Group",
"GroupId"
]
}
}
},
"App": {
"Type": "ALIYUN::ApiGateway::App",
"Properties": {
"Description": "Test Create App",
"AppName": "TestApp"
}
}
},
"Outputs": {
}
}