属性の使用
Oracle Cloud Stackテンプレートを編集し、リソースのランタイム属性を使用して、同じテンプレート内の他のリソースを構成します。
はじめには、「属性とは」を参照してください。
GetAtt関数
スタックをプロビジョニングする際、Oracle Cloud StackはRESTエンドポイントを使用して、指定されたリソース属性を収集します。 たとえば、エンドポイント「サービス・インスタンスの表示」のレスポンス・ペイロードは、Oracle Database Cloud Serviceリソースの使用可能な属性を記述します。
その属性リストを識別するには、特定のリソース・タイプについてRESTの資料を参照してください。 リソース・タイプのリストを参照してください。
テンプレート内のGetAtt関数を使用して、リソースから属性を取得します:
Fn::GetAtt: [resourceName, attributeName]
例:
parameters:
dbURL: { "Fn::GetAtt": [mydb, connect_descriptor] }
clusterSize: { "Fn::GetAtt": [mydb, num_nodes] }ネストされた属性
RESTエンドポイントからのJSONレスポンス・ペイロードには、属性の階層が含まれる場合があります。 例:
{
"keyComponentInstance": "mysql",
"adminHostName": "mytestinstance-mysql-1",
"components": {
"mysql": {
"attributes": {
"CONNECT_STRING": {
"displayName": "Connect Descriptor",
"type": "STRING",
"value": "142.114.43.1:3306\/mytestinstance"
}
}
}
}
}GetAtt関数の属性名入力は、JSONペイロード内のネストされた属性にアクセスするためにドット表記をサポートしています。 たとえば、以前のJSONレスポンスで強調表示された属性にアクセスするには、次のようにします:
parameters:
dbURL: { "Fn::GetAtt": [mydb, components.mysql.attributes.CONNECT_STRING.value] }
スタック属性
実行中のスタックをCLIまたはREST APIから監視する場合、Oracle Cloud Stackはスタックの作成者など、各スタックの標準実行時属性のセットを返します。 ただし、テンプレートでカスタム・スタック属性を定義することもできます。
テンプレート・ファイルのattributesノード内の属性を定義します。 各属性に名前とオプションの説明を付けます。 例:
attributes:
OraConnectString:
description: Connection string for Oracle database
各属性に値を割り当てます。 GetAtt関数を使用して、リソースの属性の値を取得します。 例:
attributes:
OraConnectString:
value: { "Fn::GetAtt": [mydb, components.mysql.attributes.CONNECT_STRING.value] }
description: Connection string for Oracle database