Shane Keller
03/06/2024, 10:24 PMScout
03/06/2024, 10:24 PMins
parameter. Here's a step-by-step explanation based on the documentation: 1. Define the Config Schema: You can define a config schema for your asset by creating a subclass of Config
from the Dagster library. This schema will specify the configurable parameters that your asset can accept. 2. Create the Asset Function: When defining your asset function, you can include a parameter that accepts the config object. This parameter should be annotated with the config schema class you defined. 3. Specify Asset Dependencies: If your asset depends on other assets, you can use the ins
parameter of the @asset
decorator to specify these dependencies. The ins
parameter is a dictionary that maps input names to AssetIn
objects, which can reference upstream assets. 4. Access Config in the Asset Body: Within the body of the asset function, you can access the config values through the config parameter you defined. 5. Materialize the Asset: When materializing the asset, you can provide the runtime config for the asset by specifying the config values in the run_config
parameter. Here is an example based on the documentation: python from dagster import asset, Config, AssetIn class MyAssetConfig(Config): parameter: str @asset( config_schema=MyAssetConfig, ins={"upstream_asset": AssetIn()} ) def my_asset(config, upstream_asset): # Access config parameter param_value = config.parameter # Use the upstream asset do_something_with(upstream_asset) # Your asset logic here return f"Config parameter: {param_value}, Upstream asset: {upstream_asset}"
In this example, MyAssetConfig
defines a config schema with a single parameter. The my_asset
function takes this config and an upstream asset as inputs. When you materialize this asset, you would provide the config values and specify the upstream assets in the run_config
. Please note that the exact syntax for providing the run_config
and specifying upstream assets may vary depending on your specific use case and the version of Dagster you are using. Always refer to the latest Dagster documentation for the most accurate and up-to-date information.